日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode 53. 最大子序和 动态规划解法、贪心法以及二分法

發布時間:2023/12/1 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode 53. 最大子序和 动态规划解法、贪心法以及二分法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

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

示例:

輸入: [-2,1,-3,4,-1,2,1,-5,4]
輸出: 6
解釋: 連續子數組 [4,-1,2,1] 的和最大,為 6。

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

動態規劃解法

這個是之前的動態規劃的解法:
LeetCode 53:最大子序和解題以及優化思路

貪心法

局部最優:當連續和為負數的時候時候放棄掉,將和sum清掉。從下一個元素重新計算連續和。
因為負數加上下一個元素,連續和會越來越小

全局最優:選取最大的連續和
記錄每次的連續和并且與之前最大的連續和比較,取大的值保存
代碼:

class Solution { public:int maxSubArray(vector<int>& nums) {if(nums.empty()) return 0;int sum = 0;int result = INT_MIN;for(int i = 0;i<nums.size();i++){sum += nums[i];if(sum > result)result = sum;if(sum<=0) sum = 0;}return result;} };

二分法

看不懂。。。,感覺被碾壓。。
按照自己的情況,感覺這個思路是沒辦法想出來的,果斷放棄。
官方題解

總結

以上是生活随笔為你收集整理的leetcode 53. 最大子序和 动态规划解法、贪心法以及二分法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。