题目链接:https://leetcode.com/problems/maximum-subarray/
本题虽然是easy题目,但算法还是非常精巧的,详细的可以参考上一篇https://blog.csdn.net/To_be_to_thought/article/details/84328144,从暴力搜索层层优化到分治递归和动态规划。
动态规划解法使用的是Kadane’s algorithm:
class Solution {
public int maxSubArray(int[] nums) {
int maxSum=nums[0];
int max_ending_here=maxSum;
for(int i=1;i<nums.length;i++)
{
max_ending_here=Math.max(max_ending_here+nums[i],nums[i]);
maxSum=Math.max(maxSum,max_ending_here);
}
return maxSum;
}
}