关注
public class Solution {
public static int FindGreatestSumOfSubArray(int[] array) {
int maxCur = 0; // 保存返回的结果
if(array.length == 0){
return 0;
}else { // -2,-8,-1,-5,-9 解决全为负数的时候,maxCur不能为0 的问题 ****修改1*******
maxCur = array[0];
}
//
int totalNum = maxCur; // 保存从某个位置为起点累加所有的数,得到的和
for(int i=1; i<array.length; i++){
// 最大连续子序列的和不一定从第一个元素开始算起
// 当前面的数之和小于当前元素,当前最大值取“下一个元素”与“原最大值”之间的较大者
// ---------------------------------------------------
if(totalNum < 0){ // ****修改2*******
maxCur = Math.max(array[i], maxCur);
totalNum = array[i]; // 只要原起点到当前位置的数字和小于0,就更新totalNum,即更新起点
}else{
totalNum += array[i];
if(totalNum > maxCur){ // 最新的起点到当前位置的和>原来的最大值时,更新最大值
maxCur = totalNum;
}
}
// ----------------------------------------------------
}
return maxCur;
}
/**
public static void main(String[] args) {
int result = FindGreatestSumOfSubArray(new int[]{1,2,3,4,5}); // -2,-8,-1,-5,-9 // 1,-2,3,4,5,6,-20,8
System.out.println(result);
}
*/
}
点赞
相关推荐
牛客热帖
更多
正在热议
更多
# 实习,不懂就问 #
9919次浏览 128人参与
# 如果中了500万,你会离职吗? #
85415次浏览 668人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
16585次浏览 150人参与
# 你觉得实习能学到东西吗 #
4728次浏览 93人参与
# 如何准备秋招 #
2952次浏览 44人参与
# 你觉得现在还能进互联网吗? #
889次浏览 26人参与
# 哪个瞬间让你对大厂祛魅了? #
378977次浏览 2770人参与
# 秋招什么时候开投比较合适? #
1957次浏览 34人参与
# 打工人的精神状态 #
51174次浏览 920人参与
# 一觉醒来,秋招难度下降一万倍…… #
83308次浏览 642人参与
# 京东美团大战,你怎么看? #
92154次浏览 567人参与
# 每个月的工资都是怎么分配的? #
4745次浏览 85人参与
# 聊聊你的职场新体验 #
160582次浏览 1384人参与
# 预测一下26届秋招形势 #
7487次浏览 87人参与
# 校招求职有谈薪空间吗 #
149952次浏览 2031人参与
# 软开人,秋招你打算投哪些公司呢 #
99213次浏览 929人参与
# 软开人,说说你的烦心事 #
53346次浏览 368人参与
# 诺瓦星云求职进展汇总 #
200395次浏览 1665人参与
# 机械实习一天多少钱合适? #
27793次浏览 170人参与
# 高考出分的那一天,我__ #
6833次浏览 91人参与
# 新凯来求职进展汇总 #
39880次浏览 103人参与