JZ42 连续子数组的最大和
题源 👉连续子数组的最大和牛客题霸_牛客网 (nowcoder.com)
题目描述:
具体实现:
方法一:动态规划 👉 题解 | #连续子数组的最大和#_牛客博客 (nowcoder.net)
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
int[] dp = new int[array.length];
dp[0] = array[0];
int m = dp[0];
for(int i = 1; i < array.length; i++){
dp[i] = Math.max(dp[i - 1] + array[i], array[i]);
m = Math.max(m, dp[i]);
}
return m;
}
}
时间:O(n)
空间:O(n)
方法二:动态规划空间优化 👉 题解 | #连续子数组的最大和#_牛客博客 (nowcoder.net)
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
int f = array[0];
int cur = 0;
int m = f;
for(int i = 1; i < array.length; i++){
cur = Math.max(f + array[i], array[i]);
m = Math.max(m, cur);
f = cur;
}
return m;
}
}