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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【LeetCode】053. Maximum Subarray

發布時間:2023/12/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【LeetCode】053. Maximum Subarray 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

For example, given the array?[-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray?[4,-1,2,1]?has the largest sum =?6.

題解:

  遍歷所有組合,更新最大和。

Solution 1 (TLE)

class Solution { public:int maxSubArray(vector<int>& nums) {int n = nums.size(), result = nums[0];for(int i=0; i<n; ++i) {int tmp = nums[i];result = max(tmp,result);for(int j=i+1; j<n; ++j) {tmp += nums[j];result = max(tmp,result);} } return result;} };

  可以看做動態規劃的簡略版,見Solution 5

Solution 2 ()

class Solution { public:int maxSubArray(vector<int>& nums) {int n = nums.size(), result = nums[0], tmp = 0;for(int i=0; i<n; ++i) {tmp = max(tmp + nums[i], nums[i]);result = max(result, tmp); } return result;} };

  貪心算法:The idea is to find the largest difference between the sums when you summing up the array from left to right. The largest difference corresponds to the sub-array with largest sum

Solution 3 ()

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

  分治法:

Solution 4 ()

  DP算法:維護一個一維數組。

Solution 5 ()

class Solution { public:int maxSubArray(vector<int>& nums) {int n = nums.size();vector<int> dp(n,0);//dp[i] means the maximum subarray ending with nums[i];dp[0] = nums[0];int max = dp[0];for(int i = 1; i < n; i++){dp[i] = nums[i] + (dp[i - 1] > 0 ? dp[i - 1] : 0);max = Math.max(max, dp[i]);} return max;} };

?

轉載于:https://www.cnblogs.com/Atanisi/p/6730921.html

總結

以上是生活随笔為你收集整理的【LeetCode】053. Maximum Subarray的全部內容,希望文章能夠幫你解決所遇到的問題。

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