[leetcode] 53. 最大子序和

53. 最大子序和

贪心

这题就跟个脑筋急转弯一样,从第一个开始累加,如果累加和低于0了,说明前面的肯定不能要,重新开始累加即可嘛

class Solution {
    public int maxSubArray(int[] nums) {
        int ans = Integer.MIN_VALUE;
        int cur = 0;
        for (int i = 0; i < nums.length; i++) {
            cur += nums[i];
            ans = Math.max(ans, cur);
            if (cur < 0) {
                cur = 0;
            }
        }
        return ans;
    }
}

另外,题目要求中提到了试试用分治法实现。。我琢磨了一下,分治法貌似怎么也得O(nlgn)啊,实现起来还麻烦。。

posted @ 2018-07-23 21:46 ACBingo 阅读(...) 评论(...) 编辑 收藏