关注
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);
}
*/
}
点赞
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 从顶到拉给所有面过的公司评分 #
23400次浏览 192人参与
# 机械人春招想让哪家公司来捞你? #
357788次浏览 3109人参与
# 为了求职,我做过的疯狂伪装 #
13730次浏览 276人参与
# 校招笔试 #
1343次浏览 34人参与
# 职场破冰,你们都聊什么? #
8020次浏览 79人参与
# 晒晒你的中秋福利 #
15782次浏览 120人参与
# 大家实习每天都在干啥 #
89451次浏览 518人参与
# 你的公司给实习生发中秋礼物吗 #
2448次浏览 31人参与
# 机械笔面试考察这些知识点 #
10858次浏览 96人参与
# bilibili求职进展汇总 #
91457次浏览 819人参与
# 工作压力大怎么缓解 #
105614次浏览 1053人参与
# 秋招OC许愿 #
347591次浏览 2531人参与
# 广联达求职进展汇总 #
11417次浏览 50人参与
# 机械人怎么评价今年的华为 #
209377次浏览 1525人参与
# 宣讲会你有哪些意向不到的收获 #
1898次浏览 23人参与
# 聊聊这家公司值得去吗 #
561165次浏览 3717人参与
# 你面试被问到过哪些不会的问题? #
23572次浏览 848人参与
# 百度秋招提前批进度 #
151191次浏览 1771人参与
# 电网笔面经互助 #
47138次浏览 431人参与
# 秋招的嫡长offer #
33105次浏览 298人参与