leetcode-53.最大子序和

leetcode-53.最大子序和

题意

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例:

输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

算法(DP O(n))

定义待返回变量 ans(初值nums[0]), 中间累加变量 sum(初值0)

遍历给定数组

如果sum大于0,sum求和当前元素值;否则,当前元素值赋值sum

如果sum大于ans, sum赋值ans

code

 class Solution {
public:
int maxSubArray(vector<int>& nums) {
int ans = nums[];
int sum = ;
for(auto num : nums)
{
if(sum > )
{
sum += num;
}
else
{
sum = num;
}
if(sum > ans)
{
ans = sum;
}
}
return ans;
}
};
上一篇:Oracle中的日期加减


下一篇:(WPF) Textbox 每次输入触发事件处理