977铆农、有序數(shù)組的平方
題目建議: 本題關(guān)鍵在于理解雙指針?biāo)枷?/p>
題目鏈接:https://leetcode.cn/problems/squares-of-a-sorted-array/
文章講解:https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%B9.html
視頻講解: https://www.bilibili.com/video/BV1QB4y1D7ep
聯(lián)想:
我一開始想到的暴力解法是用冒泡排序的牺氨,但是TLE了狡耻,應(yīng)該使用快排『锇迹看了題解之后發(fā)現(xiàn)夷狰,根據(jù)數(shù)組的特性,最大的元素一定出現(xiàn)在兩邊郊霎,因此可以讓兩個指針向中間靠攏遍歷數(shù)組沼头。
問題:
看了題解之后,自己寫了一遍就ac了书劝。自己用暴力法實現(xiàn)的時候进倍,冒泡排序和快速排序不太熟悉。
今日收獲:
雙指針法太妙了购对,雖然提示了用雙指針法猾昆,但是想到的用法還是不對,忽略了本題中數(shù)組的特性骡苞。
209.長度最小的子數(shù)組
題目建議: 本題關(guān)鍵在于理解滑動窗口垂蜗,這個滑動窗口看文字講解 還挺難理解的,建議大家先看視頻講解解幽。 拓展題目可以先不做贴见。
題目鏈接:https://leetcode.cn/problems/minimum-size-subarray-sum/
視頻講解:https://www.bilibili.com/video/BV1tZ4y1q7XE
聯(lián)想:初始思路是兩個for循環(huán)暴力列舉所有的子序列,題解的思路是滑動窗口躲株,用一個for實現(xiàn)片部,j代表的是終止位置的下標(biāo),關(guān)鍵在于如何移動起始位置徘溢。
問題:
全局變量和局部變量的把握不準(zhǔn)確吞琐,要注意定義的全局變量在進(jìn)入循環(huán)內(nèi)的變化;時間復(fù)雜度為什么是O(n),暫時不理解然爆。
收獲:
滑動窗口的精髓在于根據(jù)當(dāng)前窗口和的大小動態(tài)調(diào)整窗口的長度站粟。
59.螺旋矩陣II
題目建議: 本題關(guān)鍵還是在轉(zhuǎn)圈的邏輯,在二分搜索中提到的區(qū)間定義曾雕,在這里又用上了奴烙。
題目鏈接:https://leetcode.cn/problems/spiral-matrix-ii/
文章講解:https://programmercarl.com/0059.%E8%9E%BA%E6%97%8B%E7%9F%A9%E9%98%B5II.html
視頻講解:https://www.bilibili.com/video/BV1SL4y1N7mV/
聯(lián)想:
這道題完全沒思路,邊界條件處理不明白剖张。
問題:
看了題解之后切诀,懂了又沒完全懂。
收獲:
注意用vector定義并初始化二維數(shù)組的方式:vector<vector<int>> res(n,vector<int>(n,0));
循環(huán)不變量原則的關(guān)鍵應(yīng)用場景就是對邊界的處理搔弄,這里題解采用的區(qū)間寫法是左閉右開幅虑。