最大子串和,输入一个数组,求连续的元素和的最大值
ans保存最大值,sum保存包含当前元素的前一个元素的连续子串的和,如果sum<0说明对当前元素来说是负影响,所以sum=0,然后加到当前元素;如果sum>=0说明是正影响,加到当前元素。更新答案。ON
1 class Solution { 2 public: 3 int maxSubArray(vector<int>& nums) { 4 if(nums.size()==0) return 0; 5 int ans=nums[0]; 6 int sum=nums[0]; 7 for(int i=1;i<nums.size();i++){ 8 if(sum<0){ 9 sum=0; 10 } 11 sum+=nums[i]; 12 ans=max(sum,ans); 13 } 14 return ans; 15 } 16 };
时间: 2024-12-28 09:02:42