重庆平台网站建设找哪家,常德网站定制,网站的建设与维护怎么弄,深圳品牌seo华为OD机试 2024C卷题库疯狂收录中#xff0c;刷题点这里 专栏导读
本专栏收录于《华为OD机试#xff08;JAVA#xff09;真题#xff08;A卷B卷C卷#xff09;》。
刷的越多#xff0c;抽中的概率越大#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试… 华为OD机试 2024C卷题库疯狂收录中刷题点这里 专栏导读
本专栏收录于《华为OD机试JAVA真题A卷B卷C卷》。
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。
一、题目描述
公司每日盈利的利润额记于整数数组 profit请返回连续一或多天利润额总和的最高值。
二、输入描述
第一行为一个整数表示天数
第二行为整数列表分别为每日的利润。
三、输出描述
输出整数表示连续天数利润额总和的最高值。
1、输入
4 2 3 -5 4
2、输出
5
3、说明
2 3”连续2天的利润总额总和为最高值连续利润额为5。
四、解题思路
核心算法
累加正利润遇到负数则求前面若干个正数之和的最大值并重置下一个时间段的正数之和
注意默认肯定有正利润不考虑全是负利润的时候
五、Java算法源码
public class Test02 {public static void main(String[] args) {Scanner sc new Scanner(System.in);// 天数int n Integer.valueOf(sc.nextLine());// 每日的利润int[] arr Arrays.stream(sc.nextLine().split( )).mapToInt(Integer::parseInt).toArray();// 连续一或多天利润额总和的最高值int max 0;// 每日利润下角标int idx 0;// 一个时间段的正数之和int sum 0;while (idx n){// 累加正利润if(arr[idx] 0){sum arr[idx];}else{ // 遇到负数则求前面若干个正数之和的最大值max Math.max(max, sum);// 重置下一个时间段的正数之和sum 0;}idx;}// 解决最后一天利润为正的情况max Math.max(max, sum);System.out.println(max);}
}六、效果展示
1、输入
10 2 3 -5 4 2 0 0 1 -2 8
2、输出
8
3、说明 下一篇华为OD机试 - 简易内存池 - 逻辑分析Java 2024 C卷 200分
本文收录于华为OD机试JAVA真题A卷B卷C卷
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。