用java编程求解任意一个整数序列的最大连续子序列和,并输出最大连续子序列和的值
时间: 2024-05-10 09:21:39 浏览: 83
以下为Java代码实现:
```java
public class MaxSubarraySum {
public static void main(String[] args) {
int[] nums = {1, -2, 3, 10, -4, 7, 2, -5};
int maxSum = maxSubarraySum(nums);
System.out.println("最大连续子序列和为:" + maxSum);
}
public static int maxSubarraySum(int[] nums) {
int maxSum = nums[0];
int curSum = 0;
for (int i = 0; i < nums.length; i++) {
curSum += nums[i];
if (curSum > maxSum) {
maxSum = curSum;
}
if (curSum < 0) {
curSum = 0;
}
}
return maxSum;
}
}
```
以上代码使用了一个变量`maxSum`来保存当前最大的连续子序列和,另一个变量`curSum`用于记录当前正在计算的连续子序列和。使用循环遍历整个序列,每次将当前数值累加到`curSum`中,并比较`curSum`和`maxSum`的大小,如果`curSum`大于`maxSum`,则将`maxSum`更新为`curSum`的值。如果`curSum`小于0,则将`curSum`重置为0,因为当前这个数值对于后面的连续子序列和没有贡献。最后返回`maxSum`即可。
阅读全文