子数组的最大累加和(动态规划)

子数组的最大累加和问题

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

/*
dp[i]:以i为结尾的数组最大和 
dp[i]:初始化为a[i].
dp[i] = max(dp[i], dp[i-1] + a[i]);
结果为遍历所有dp,寻找以i为结尾的最大值
*/
class Solution {
public:
    int maxsumofSubarray(vector<int>& arr) {
        vector<int> dp(arr);
        for(int i = 0;i < arr.size(); i++){
            dp[i] = max(dp[i], dp[i-1] + arr[i]);
        }
        int ans = 0;
        for(int i = 0;i < arr.size(); i++){
            ans = max(ans, dp[i]);
        }
        return ans;
    }
};
全部评论

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
10-21 23:48
蚌埠坦克学院
csgq:可能没hc了 昨天一面完秒挂
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务