使用C++编写程序计算数组中连续元素相加后最大的值是多少?
时间: 2024-04-17 22:27:21 浏览: 104
数组对应元素相加.docx
当然,以下是使用C++编写的程序来计算数组中连续元素相加后的最大值:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int maxSubarraySum(const std::vector<int>& arr) {
int maxSum = arr[0];
int currentSum = arr[0];
for (size_t i = 1; i < arr.size(); i++) {
currentSum = std::max(arr[i], currentSum + arr[i]);
maxSum = std::max(maxSum, currentSum);
}
return maxSum;
}
int main() {
std::vector<int> arr = {1, -2, 3, 10, -4, 7, 2, -5};
int result = maxSubarraySum(arr);
std::cout << result << std::endl; // 输出 18
return 0;
}
```
在这个程序中,`maxSubarraySum` 函数使用动态规划的思想,通过迭代数组元素,不断更新当前连续子数组的最大和(`currentSum`),并与全局最大和(`maxSum`)进行比较。最后输出 `maxSum` 即为数组中连续元素相加后的最大值。
阅读全文