【力扣】最大子数组和(贪心)
题目描述

贪心算法在构思的时候一般按以下这些步骤来,
1,明确全局最优解,
2.构造一种取得局部最优解的方法,要根据问题具体分析
3.提出反例,就是说尽量想想有没有一些一些情况下,通过局部最优解得不到全局最优解,如果想不到反例的话,则这个贪心策略就是有效的
问题的关键就在于如何找到一种合适的局部最优解取法,使它们堆叠起来能得到全局最优解。
本题中的局部最优解:

得到代码如下:
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int res = INT32_MIN;
int cur = 0;
for(int i = 0; i < nums.size(); i++){
cur += nums[i];
if(cur > res){
res = cur;
}
if(cur < 0){
cur = 0;
}
}
return res;
}
};

浙公网安备 33010602011771号