LeetCode-53. Maximum Subarray

题目链接: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;
    }
}

猜你喜欢

转载自blog.csdn.net/To_be_to_thought/article/details/84328594