题解 | #连续子数组的最大和#

连续子数组的最大和

https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484

首先看到最大和,然后观察是求上面的最大值,一看连续子数组
这时候脑子里面应该会有很多idea
首先,既然是连续的子数组那如果都是正数的话,
因为数组中有正有负有0,因此每次遇到一个数,要不要将其加入我们所求的连续子数组里面,是个问题,有可能加入了会更大,有可能加入了会更小,而且我们要求连续的最大值,因此这类有状态转移的问题可以考虑动态规划。
从数组的开头往下走,sum记录连续的和,max记录最大值
sum和max的初始值为数组第一个元素array[0]
数组不断往下走,不断更新max的值。如果当sum<array[0]时,此时就需要丢弃之前统计的,所以令sum=0
import java.util.*;
public class Solution {
    public int FindGreatestSumOfSubArray(int[] array) {
        //记录到下标i为止的最大连续子数组和
        int[] dp = new int[array.length]; 
        dp[0] = array[0];
        int maxsum = dp[0];
        for(int i = 1; i < array.length; i++){
            //状态转移:连续子数组和最大值
            dp[i] = Math.max(dp[i - 1] + array[i], array[i]); 
            //维护最大值
            maxsum = Math.max(maxsum, dp[i]); 
        }
        return maxsum;
    }
}


全部评论
怎么没有表情包了QAQ
1 回复 分享
发布于 2022-06-28 18:59

相关推荐

10-17 17:14
门头沟学院 C++
牛客410039819号:北京地区大多是919和927,这两场挂太多人了
投递华为等公司10个岗位
点赞 评论 收藏
分享
评论
5
4
分享
正在热议
# 25届秋招总结 #
440577次浏览 4493人参与
# 春招别灰心,我们一人来一句鼓励 #
41484次浏览 524人参与
# 阿里云管培生offer #
119866次浏览 2219人参与
# 地方国企笔面经互助 #
7928次浏览 18人参与
# 同bg的你秋招战况如何? #
75577次浏览 552人参与
# 虾皮求职进展汇总 #
114215次浏览 884人参与
# 北方华创开奖 #
107311次浏览 599人参与
# 实习,投递多份简历没人回复怎么办 #
2454001次浏览 34848人参与
# 实习必须要去大厂吗? #
55678次浏览 960人参与
# 提前批简历挂麻了怎么办 #
149825次浏览 1977人参与
# 投递实习岗位前的准备 #
1195707次浏览 18546人参与
# 你投递的公司有几家约面了? #
33180次浏览 188人参与
# 双非本科求职如何逆袭 #
661910次浏览 7394人参与
# 如果公司给你放一天假,你会怎么度过? #
4730次浏览 55人参与
# 机械人春招想让哪家公司来捞你? #
157604次浏览 2267人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11365次浏览 270人参与
# 发工资后,你做的第一件事是什么 #
12418次浏览 61人参与
# 工作中,努力重要还是选择重要? #
35612次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20091次浏览 240人参与
# 我的上岸简历长这样 #
451924次浏览 8088人参与
# 实习想申请秋招offer,能不能argue薪资 #
39235次浏览 314人参与
# 非技术岗是怎么找实习的 #
155850次浏览 2120人参与
牛客网
牛客企业服务