首页 > 其他 > 详细

求连续最大子序列和

时间:2020-06-04 23:40:25      阅读:58      评论:0      收藏:0      [点我收藏+]

此博客链接:https://www.cnblogs.com/ping2yingshi/p/13047031.html

求连续最大子序列和

题目链接:https://leetcode-cn.com/problems/contiguous-sequence-lcci/

给定一个整数数组,找出总和最大的连续数列,并返回总和。

示例:

输入: [-2,1,-3,4,-1,2,1,-5,4]
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

题解:

         思路:使用动态规划,当前值取决于上次值和本次值的和,判断,代码思路在代码中。

代码如下:

class Solution {
    public int maxSubArray(int[] nums) {
        int[] dp=new int [nums.length];//当前值所求的的最大值
        dp[0]=nums[0];//初始化
        int max=dp[0];//求最大值
        for(int i=1;i<nus.length,i++)
        {
            if(nums[i]>nums[i]+dp[i-1])//如果当前值比前面值加上当前值小,和变小了,说明当前值为负数,则把dp置为当前值
                 dp[i]=nums[i];
            else//如果当前值比前面和加上当前值小,即当前值为正数,和更大,则把当前值加入到dp中
                dp[i]=nums[i]+dp[i-1];
            max=Math.max(max,dp[i]);
        }
        return max;
    }
}

 

求连续最大子序列和

原文:https://www.cnblogs.com/ping2yingshi/p/13047031.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!