leetcode 动态规划之最大子序列

简介: 动态规划之最大子序列

动态规划之最大子序列问题



class Scratch {
    public static void main(String[] args) {
       int arr[]={-13,1,-3,2,7,-5,3,5};
        System.out.println(FindGreatestSumOfSubArray(arr));
    }
    public static int FindGreatestSumOfSubArray(int[] array) {
        if (array.length==0 || array==null) {
            return 0;
        }
        int currentSum =0;     //存储当前连续n项的和
        int max = array[0];            //初始化第一个数为连续子元素最大和
        for (int i = 0; i < array.length; i++) {
            //核心部分
            if(currentSum<=0){      //如过当前连续n项的和小于等于0,则没必要与后面的元素相加
                currentSum = array[i];      //currentSum重新赋值
            }else{
                currentSum += array[i];     //如果currentSum的值大于0,则继续与后面的元素相加,
            }
            if(currentSum>max){         //每次改变currentSum的值都有与max进行比较
                max = currentSum;       //如果currentSum的值大于max,则将currentSum的值赋值给max
            }
        }
        return max;
    }
}
目录
相关文章
|
20天前
|
存储 算法
《LeetCode》—— 摆动序列
《LeetCode》—— 摆动序列
|
14天前
力扣740. 删除并获得点数(动态规划)
力扣740. 删除并获得点数(动态规划)
|
14天前
力扣213打家劫舍2(简单动态规划)
力扣213打家劫舍2(简单动态规划)
|
14天前
力扣198.打家劫舍(简单动态规划)
力扣198.打家劫舍(简单动态规划)
|
20天前
leetcode代码记录(最长连续递增序列
leetcode代码记录(最长连续递增序列
16 2
|
20天前
leetcode代码记录(最长递增子序列
leetcode代码记录(最长递增子序列
13 1
|
20天前
leetcode代码记录(动态规划基础题(斐波那契数列)
leetcode代码记录(动态规划基础题(斐波那契数列)
13 0
|
20天前
|
算法
leetcode代码记录(摆动序列
leetcode代码记录(摆动序列
14 0
|
20天前
|
索引
力扣---最长回文子串(动态规划)
力扣---最长回文子串(动态规划)
|
20天前
[leetcode~数位动态规划] 2719. 统计整数数目 hard
[leetcode~数位动态规划] 2719. 统计整数数目 hard