題干:
代碼:
class Solution {
public:int maxSubArray(vector<int>& nums) {int res = INT_MIN;int count = 0;for(int i = 0; i < nums.size(); i++){count += nums[i];if(count > res) res = count;if(count <= 0)count = 0;}return res;}
};
局部最優:只要連續和大于0就一直遍歷加下去,直到為0或小于0時再以下一個數為起點往下加。而令count=0實現了這一要求。
最大子序列可以包含負數,只要連續和是正數就行了。