一个有N个整数元素的一维数组,这个数组有很连续多的子数组,那么这些子数组中和最大值是多少?用JAVA语言实现计算,只要打印出子数组求和的最大值,不要求打印子数组
时间: 2024-04-17 19:24:42 浏览: 108
max_sum.rar_SUM_max_sum
好的,以下是使用Java语言实现的代码,来计算一个有N个整数元素的一维数组中,连续子数组的最大和:
```java
public class MaxSubarraySum {
public static int maxSubarraySum(int[] arr) {
int maxSum = Integer.MIN_VALUE;
int currentSum = 0;
for (int num : arr) {
currentSum += num;
if (currentSum > maxSum) {
maxSum = currentSum;
}
if (currentSum < 0) {
currentSum = 0;
}
}
return maxSum;
}
public static void main(String[] args) {
int[] arr = {1, -2, 3, 5, -1, 2};
int result = maxSubarraySum(arr);
System.out.println("子数组的最大和为: " + result);
}
}
```
这段代码使用了动态规划的思想,通过遍历一维数组,不断累加当前元素,并与当前最大和进行比较。如果当前和大于最大和,则更新最大和;如果当前和小于0,则将当前和重置为0。
希望对你有帮助!如果你还有其他问题,请随时提问。
阅读全文