题目
题解
代码
/** * code53 */
public class code53 {
public static int maxSubArray(int[] nums) {
int ans = nums[0];
int sum = 0;
for (int i = 0; i < nums.length; i++) {
if (sum > 0) {
sum += nums[i];
} else if (sum <= 0) {
sum = nums[i];
}
if (sum > ans) {
ans = sum;
}
}
return ans;
}
// public static int maxSubArray(int[] nums) {
// int len = nums.length;
// if (len == 0) {
// return 0;
// }
// int dp[] = new int[len];
// dp[0] = nums[0];
// for (int i = 1; i < len; i++) {
// if (dp[i - 1] >= 0) {
// dp[i] = dp[i - 1] + nums[i];
// } else {
// dp[i] = nums[i];
// }
// }
// int res = dp[0];
// for (int i = 1; i < len; i++) {
// if (dp[i] > res) {
// res = dp[i];
// }
// }
// return res;
// }
public static void main(String[] args) {
int nums[] = { -2, 1, -3, 4, -1, 2, 1, -5, 4 };
int res = maxSubArray(nums);
System.out.println(res);
}
}