美文网首页
最大子序和

最大子序和

作者: 我知他风雨兼程途径日暮不赏 | 来源:发表于2020-05-03 12:42 被阅读0次

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

    1.题目

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

    • 示例:
      输入: [-2,1,-3,4,-1,2,1,-5,4],
      输出: 6
      解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
    • 进阶:
      如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。

    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)

    相关文章

      网友评论

          本文标题:最大子序和

          本文链接:https://www.haomeiwen.com/subject/zsxdghtx.html