[leetcode] 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)啊,实现起来还麻烦。。