LeetCode Maximum Subarray DP

来源:互联网 发布:usda数据查询 编辑:程序博客网 时间:2024/05/16 17:32

思想:

时间复杂度O(N),空间复杂度O(1)。

从头到尾遍历,如果nums[i]比前面的子序列和大,则从nums[i]重新开始新的子序列,否则,加入nums[i]并延续前面的子序列。

res取所有这些子序列中最大的。


class Solution {public:    int maxSubArray(vector<int>& nums) {        int res = INT_MIN, tmp = 0;        for(int i = 0; i < nums.size(); i++) {            tmp = max(tmp+nums[i], nums[i]);            res = max(res, tmp);        }        return res;    }};


0 0
原创粉丝点击