就,每次都计算求和的值,如果求和的sum比这个位置的值小,那么最大和就是这个位置的值,否则的话和就是之前的求和加上这个位置的值,这个的话也算是比较简单的程序了,依旧没什么好说的
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int sum=nums[0],max=sum;
for(int i=1;i<nums.size();i++){
if(sum+nums[i]<nums[i]){
sum=nums[i];
}else{
sum+=nums[i];
}
if(max<sum) max=sum;
}
return max;
}
};
京公网安备 11010502036488号