LeetCode 刷題筆記 20170129

2021-08-15 04:15:11 字數 634 閱讀 6739

1.maximum subarray & best time to buy and sell block 都為動態規劃問題,前者可使用直接的kadane演算法,維護兩個變數max_ending_here和max_so_far,詳見(後者求差後可使用kadane演算法;

2.house robber 為動態規劃問題,可以這樣理解。d表示到第i個屋子的最大獲利,e表示搶第i個屋子的獲利。 對於第i個屋子,搶的獲利為 d[i-2] + e[i], 不搶的獲利為 d[i-1]。根據遞推關係式可求解;

3.range sum query-immutablen 使用字首和的方法,使用樹狀陣列和線段樹亦可解,不會,待研究;

4.min cost climb 為動態規劃問題,審題注意,要求跨過給定的陣列,比如[10,15,20,5] ,要求跨過5,最短方法為 1(15)->3(5)->終點。遞推關係式如下dp[i] = min(cost[i-1]+dp[i-1], cost[i-2]+dp[i-2]) dp[i]是實際上儲存的是跨越第i-1個樓梯到達第i個樓梯的花費,因此到達最頂為dp[n](n為陣列長度),dp長度為(n+1);

5.max chunks to make sorted 陣列問題,將陣列分塊後排序等同整體排序,求最大分塊個數。可以求每單獨塊的最大值,如果最大值恰好等於下標,則為一塊。

LeetCode刷題實戰201 數字範圍按位與

given a range m,n where 0 m n 2147483647,return the bitwise and of all numbers in this range,inclusive.給定範圍 m,n 其中 0 m n 2147483647,返回此範圍內所有數字的按位與 包含 ...

Leetcode刷題筆記

1.兩數之和給定乙個整數陣列nums 和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。ps 你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。思路 用target減去nums中的每乙個數,並設立乙個字典來記錄對應的下標 class...

LeetCode刷題筆記

實現strstr 給定乙個 haystack 字串和乙個 needle 字串,在 haystack 字串中找出 needle 字串出現的第乙個位置 從0開始 如果不存在,則返回 1。示例 1 輸入 haystack hello needle ll 輸出 2 示例 2 輸入 haystack aaaa...