golang中怎么利用leetcode连续数列
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本篇文章为大家展示了golang中怎么利用leetcode连续数列,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。给定一个整数数组(有正数有负数),找出总和最大
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
9400f能做服务器吗
关于数字化数据库的不足
sql数据库大小修改
三丰云服务器免费制作
游戏公司网络安全顾问
宇视软件开发面经
服务哪家好软件开发
南通从事软件开发工资
桓台县鲁中数据库
警车声音软件开发
180.188.19服务器
南京市租房软件开发
延保软件开发
打开软件显示数据库不匹配
中信银行软件开发中心面试
数据库第一行就有错误
天实互联网科技
外网打印服务器
我的世界里怎么弄服务器
网络安全集中化运营
电视机网络服务器ip地址查询
数据库近2018年参考文献
方舟生存进化手游服务器自动重启
数据库缓冲技术
乌恰县委网络安全
广东软件开发攻略
美股网络安全龙头估值
央视报道网络安全工程师
网络技术的发展历程和发展趋势
网络安全宣传会议记录