golang中怎么利用leetcode连续数列
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章为大家展示了golang中怎么利用leetcode连续数列,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。给定一个整数数组(有正数有负数),找出总和最大
千家信息网最后更新 2026年11月01日golang中怎么利用leetcode连续数列
本篇文章为大家展示了golang中怎么利用leetcode连续数列,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
给定一个整数数组(有正数有负数),找出总和最大的连续数列,并返回总和。
示例:
输入:[-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6。
进阶:
如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。
解题思路
解题方案一 (动态规划)
思路
假设数组名称为arr,结果数组为result
当只有一个数字的时候,最大的连续数列只能是这个数字,所以序号为0的位置,最大值为-2,则有
result[0] = arr[0]当有两个数字时,有两种情况
保留前边的序列,此时值为
result[0] + arr[1]=不保留前边的序列,此时值为
1,即arr[1]此时选取最大值的话为1
到第三个数字时
保留前边的序列,值为
result[1] + arr[2] = 1 + -3 = -2不保留前边的序列,值为
arr[2] = -3此时选取最大值的话为-3
以此类推的话可以得到下表
| 序号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|
| 数值(arr数组) | -2 | 1 | -3 | 4 | -1 | 2 | 1 | -5 | 4 |
| 保留前边的序列 | -1 | -4 | -1 | 3 | 5 | 6 | 1 | 5 | |
| 不保留前边的序列 | 1 | -3 | 4 | 4 | 2 | 1 | -5 | 4 | |
| 最大值(result数组) | -2 | 1 | -3 | 4 | 4 | 5 | 6 | 1 | 4 |
总结可得如下规律

最终只需取得result[]中值最大的数即为结果
代码
public static int maxSubArray(int[] arrs) {
int len = arrs.length;
int maxNum = arrs[0];
int[] result = new int[arrs.length];
result[0] = maxNum;
for (int i = 1; i < len; i++) {
int a = result[i - 1] + arrs[i]; //保留前边的序列
int b = arrs[i]; //不保留前边的序列
int curMax = Math.max(a, b);
result[i] = curMax;
if (curMax > maxNum) {
maxNum = curMax;
}
}
return maxNum;
}代码优化
由于上述过程中,创建了result数组,但是实际上每次循环时,当前数字计算完之后就没有其他用处了,所以此处可以使用arrs数组作为result数组来用,优化后如下
public static int maxSubArray(int[] arrs) {
int len = arrs.length;
int maxNum = arrs[0];
for (int i = 1; i < len; i++) {
int a = arrs[i - 1] + arrs[i]; //保留前边的序列
int b = arrs[i]; //不保留前边的序列
int curMax = Math.max(a, b);
arrs[i] = curMax;
if (curMax > maxNum) {
maxNum = curMax;
}
}
return maxNum;
}代码实现
func maxSubArray(nums []int) int {sum:=0max:=0for i,n:=range nums{ if i==0{ max=n sum=n continue } if sum+n>n{ sum+=n }else{ sum=n } if max上述内容就是golang中怎么利用leetcode连续数列,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
序列
数组
最大
数字
数列
最大值
代码
内容
序号
思路
总和
技能
知识
结果
复杂
简明
精妙
以此类推
简明扼要
三个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
耶加雪菲
广州大一互联网络科技有限公司
互联网科技工作委员会毛军
互联网科技垄断
科技制造互联网公司
科技与互联网发展
互联网科技公司电话
互联网科技革命
亿策互联网科技
云电互联网科技
智慧科技互联网
人人互联网科技是培训
互联网实体化科技化
厦门比较好的科技互联网公司
互联网数据科技专业
科技赋能视角下互联网保险发展
江苏苏星互联网科技有限公司
互联网科技博主张洲
互联网科技大佬云集
瑞安市蟠桃会互联网科技有限公司
瑰夏咖啡
互联网络科技有限公司
互联网 科技创新
礼当家互联网科技
融势互联网科技
友谊互联网络科技
互联网高科技企业
互联网 科技服务平台
上海创道互联网络科技有限公司
悟空问答互联网科技