最大子段和 Java

java 复制代码
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] dp = new int[n + 1];
		int max = Integer.MIN_VALUE;
		for (int i = 1; i <= n; i++) {
			int a = sc.nextInt();
            // 每次判断以a结尾的子数列和,只要前一个子数列和是大于零的,那么就加上它使自身增大,否则不加,从自身开始新的子数列
			dp[i] = dp[i - 1] > 0 ? a + dp[i - 1] : a;
			if (dp[i] > max) max = dp[i];
		}
		System.out.println(max);
	}
}

每日一水~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

相关推荐
czlczl200209259 小时前
告别 try-catch 地狱:Spring Boot 全局异常处理 (GlobalExceptionHandler) 最佳实践
java·spring boot·后端
Alair‎9 小时前
【无标题】
开发语言
Mr.Jessy12 小时前
JavaScript高级:构造函数与原型
开发语言·前端·javascript·学习·ecmascript
云栖梦泽14 小时前
鸿蒙应用签名与上架全流程:从开发完成到用户手中
开发语言·鸿蒙系统
爱上妖精的尾巴15 小时前
6-4 WPS JS宏 不重复随机取值应用
开发语言·前端·javascript
Goldn.15 小时前
Java核心技术栈全景解析:从Web开发到AI融合
java· spring boot· 微服务· ai· jvm· maven· hibernate
fie888916 小时前
NSCT(非下采样轮廓波变换)的分解和重建程序
算法
李慕婉学姐16 小时前
【开题答辩过程】以《基于Android的出租车运行监测系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·后端·vue
小鸡吃米…16 小时前
Python 列表
开发语言·python
m0_7400437316 小时前
SpringBoot05-配置文件-热加载/日志框架slf4j/接口文档工具Swagger/Knife4j
java·spring boot·后端·log4j