国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【LeetCode】53. Maximum Subarray

2019-11-06 06:08:43
字體:
來源:轉載
供稿:網友

題目描述

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.

解題思路

動態規劃。 對于從0到i,要使得當前的狀態取值最大,那么,對于前一個狀態的最大值,考慮如下兩種情況:

當前一個狀態的最大值為負數時,直接拋棄當前一個狀態的最大值非負時,那么加上它

也就是說,有如下的狀態轉移方程:

maxSubArray(A, i) = A[i] + (maxSubArray(A, i - 1) > 0 ? maxSubArray(A, i - 1) : 0)

AC代碼

class Solution {public: int maxSubArray(vector<int>& nums) { int n = nums.size(); int *dp = new int[n]; dp[0] = nums[0]; int maxSum = dp[0]; for (int i = 1; i < n; ++i) { dp[i] = nums[i] + (dp[i - 1] > 0 ? dp[i - 1] : 0); maxSum = max(maxSum, dp[i]); } return maxSum; }};
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鹤山市| 法库县| 金昌市| 瑞安市| 阳高县| 柳州市| 衡阳市| 建湖县| 大同市| 宣城市| 庆云县| 广饶县| 廉江市| 原平市| 道孚县| 赤水市| 莱芜市| 台东县| 宜川县| 融水| 海南省| 达孜县| 武川县| 新泰市| 汝州市| 洛阳市| 嘉兴市| 和龙市| 罗城| 都江堰市| 仪陇县| 济源市| 遂川县| 奉化市| 翁源县| 巴里| 吴江市| 兴安县| 北流市| 临朐县| 临海市|