题解 | #子数组的最大累加和问题#

子数组的最大累加和问题

http://www.nowcoder.com/practice/554aa508dd5d4fefbf0f86e5fe953abd

class Solution {
public:
    /**
     * max sum of the subarray
     * @param arr int整型vector the array
     * @return int整型
     */
    int maxsumofSubarray(vector<int>& arr) {
        // write code here
        /*当前数的与前面所有数(包括当前数)和比较—————大于—————>当前数最大值
         *当前数的与前面所有数和比较(包括当前数)—————小于—————>继续累加
         *
         */
        
         if(arr.size()==1)return arr[0];
            sum = maxVal = arr[0];
         for(int count=1;count<arr.size();count++){
              sum = sum + arr[count];
              if(sum < arr[count]){
                  sum = arr[count];
                  maxVal = arr[count];
              }else{
                  maxVal = max(maxVal,sum);
              }
         }
        return maxVal;
    }
    
private:
    int maxVal;
    int sum;
};

```

全部评论

相关推荐

被普调的六边形战士很高大:项目经历貌似和专业或者求职方向没大关系?
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务