最大子段和 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);
	}
}

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

相关推荐
zzz_23681 分钟前
【Java实习面试算法冲刺】哈希!
java·算法·面试
大耳朵糊涂2 分钟前
找前/后驱节点
算法
孤狼warrior7 分钟前
从冒泡到传送带流水线:一个3D沉浸式算法靶场,让思想的伟力改变世界
python·算法·typescript
零点零一8 分钟前
QT 5升级到 Qt 6 使用 Clazy 检查将 C++ 应用程序移植到 Qt 6
开发语言·c++·qt
带刺的坐椅11 分钟前
ReActAgent 使用指南:构建会思考、能行动的 AI Agent
java·ai·llm·solon·loop·react-agent
caimouse14 分钟前
reactos 测试安装32位微信失败的日志
开发语言·微信
bu_shuo17 分钟前
计算机二级学习-查找和排序
学习·算法·排序算法
爱奥尼欧17 分钟前
轻量级可扩展日志框架-异步日志与系统集成
开发语言·数据库·c++·学习
大圣编程20 分钟前
python break语句
开发语言·前端·python
漂亮的摩托26 分钟前
如何编写一个SpringBoot项目告警推送的Starter
java·spring boot·后端