最大子序和

2020-05-03  本文已影响0人  我知他风雨兼程途径日暮不赏

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-subarray

1.题目

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。


class Solution {
    public int maxSubArray(int[] nums) {
        
    }
}

2. JAVA解答(动态规划、贪心)

通过动态规划解决,这里的动态规划数组可以被省略掉,为了理解还是做了保留。


时间复杂度O(N),空间复杂度O(N)可以简化成O(1)
class Solution {
    public int maxSubArray(int[] nums) {
         if(nums.length==0){
            return 0;
        }
        int[] dp = new int[nums.length];
        dp[0] = nums[0];
        int max = dp[0];
        for(int i=1;i<nums.length;i++){
            dp[i] = Math.max(dp[i-1]+nums[i],nums[i]);
            max = Math.max(dp[i],max);
        }
        return max;
    }
}

3.JAVA解答(分治、线段树求解LCIS)

上一篇下一篇

猜你喜欢

热点阅读