1. 题目
2. 思路
(1) 动态规划
- dp[i]表示以下标为i的元素结尾的子数组的最大和,维护一个全局变量找出最大的dp[i]。
3. 代码
public class Test {
public static void main(String[] args) {
}
}
class Solution {
public int maxSubArray(int[] nums) {
int n = nums.length;
int[] dp = new int[n];
dp[0] = nums[0];
int res = dp[0];
for (int i = 1; i < n; i++) {
dp[i] = nums[i];
if (dp[i - 1] > 0) {
dp[i] += dp[i - 1];
}
res = Math.max(res, dp[i]);
}
return res;
}
}