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

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

相关推荐
阿常1139 分钟前
解决Maven项目中报错“java不支持版本6即更高的版本 7”
java·开发语言·maven
汤姆大聪明42 分钟前
Spring MVC入门
java·spring·mvc
EanoJiang1 小时前
查找
算法
Stay Passion2 小时前
Java 实用工具类:Apache Commons IO 的 IOUtils
java·开发语言·apache
海码0073 小时前
【Hot 100】 146. LRU 缓存
数据结构·c++·算法·链表·缓存·hot100
今天也是元气满满的一天呢3 小时前
java学习之数据结构:一、数组
java·数据结构·学习
买了一束花4 小时前
二、机器学习中Python变量基础
开发语言·python·机器学习·conda
钢铁男儿4 小时前
C# 方法(控制流和方法调用)
算法
-曾牛4 小时前
探索 Spring AI 的 ChatClient API:构建智能对话应用的利器
java·人工智能·spring boot·后端·spring·springai·ai指南