53.最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组是数组中的一个连续部分。

思路

  • 动态规划基础题,前缀和
  • 要么前缀和+当前元素,要么不加
  • 重新开始计算前缀和
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.wereash.scut_hot100;

import java.util.Scanner;

/**
* @Author: WereAsh
* @Date:2026-01-26 19:42
**/
public class Solution053 {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
String[] str=scanner.nextLine().split(",");
int n=str.length;
int[] nums=new int[n];
for (int i=0;i<n;i++){
nums[i]=Integer.parseInt(str[i]);
}
int max=nums[0];
for(int i=1;i<n;i++){
nums[i]=Math.max(nums[i],nums[i]+nums[i-1]);
max=Math.max(nums[i],max);
}
System.out.println("最大子数组和:"+max);
}
}