leetcode刷題(31) 53 最大子序和

2021-09-29 16:10:24 字數 766 閱讀 1456

給定乙個整數陣列 nums ,找到乙個具有最大和的連續子陣列(子陣列最少包含乙個元素),返回其最大和。

示例:輸入: [-2,1,-3,4,-1,2,1,-5,4],

輸出: 6

解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。

高階:如果你已經實現複雜度為 o(n) 的解法,嘗試使用更為精妙的分治法求解。

思路:第一聯想到的是使用動態規劃

class solution 

int[

] maxsum = new int

[nums.length]

;int ans = nums[0]

; maxsum[0]

= nums[0]

;for

(int i=

1;i)else

ans = math.

max(ans,maxsum[i]);

}return ans;

}}

感覺自己寫的不好,提交才打敗了55%的人

效率更高的寫法如下:

class solution 

else

ans = math.

max(ans, sum);}

return ans;

}}

動態規劃優化方法:

class solution 

return max;

}}

leetcode刷題之239 滑動視窗的最大值

正確的解法是使用雙端佇列來處理這個window的功能。c deque有現成的stl可以使用 需要注意幾個點 1.需要維護佇列內部的最大值在隊首的位置,每次想要新增乙個新元素的時候就迴圈和前面的元素做比較 2.判斷乙個元素是否過期,可以直接用當前隊首和應該淘汰的數字進行對比如果一致就去除 主要邏輯 1...

開始刷題LeetCode

今天決定開始刷題,每天至少一題,如果題目確實沒有解決出來沒有關係,但是要保證每天至少接觸了一道新的題目!一定要堅持下去,現在是個菜鳥可能會感覺有點難度,堅持下去,總有一天會好的!今天是第一天,做的第乙個題目 reverse words in a string given an input strin...

leetcode刷題歷程

難度 簡單 題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 ...