您的位置:首页 > 其它

算法分析与设计丨第二周丨LeetCode(4)——Maximum Subarray(Easy)

2017-09-14 11:27 375 查看
动态规划&分治法

题目链接:点击打开链接

这道题目要求子数组的最大和,用动态规划的方法会优美许多,而分治法的暂时没时间写,下次再补上。

动态规划:

易想到递推公式:局部最大和:max(curSum+i,i),如果当前子数列之和比遍历到的元素要小,那就取元素为局部最大和

   全局最大和:max(maxSum,curSum),将当前全局最大和与局部最大和进行比较

代码也可得出

class Solution {
public:
int maxSubArray(vector<int>& nums) {
int curSum = 0,maxSum = INT_MIN;

for(int i : nums)
{
curSum = max(curSum + i , i);
maxSum = max(maxSum , curSum);
}

return maxSum;

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐