c++中前缀和数组怎么用代码实现
时间: 2024-10-28 18:12:26 浏览: 24
ACM算法竞赛中的杜教筛的C++代码实现
在C++中,前缀和数组(也称为累积求和数组)通常用于解决一些需要计算元素之间和的问题,比如求解最长上升子序列、区间和等。下面是使用C++实现前缀和数组的一个基本步骤:
```cpp
#include <iostream>
#include <vector>
// 定义计算前缀和函数
std::vector<int> prefixSum(const std::vector<int>& arr) {
int n = arr.size();
std::vector<int> prefix(n, 0);
for (int i = 1; i <= n; i++) {
prefix[i] = prefix[i - 1] + arr[i - 1];
}
return prefix;
}
int main() {
// 测试数据
std::vector<int> numbers = {1, 2, 3, 4, 5};
std::vector<int> prefixSumArray = prefixSum(numbers);
// 打印前缀和数组
for (int i = 0; i <= numbers.size(); i++) {
std::cout << "Prefix sum at index " << i << ": " << prefixSumArray[i] << "\n";
}
return 0;
}
```
在这个例子中,`prefixSum`函数接收一个整数向量作为输入,然后通过循环逐个累加每个元素到前一个元素上,生成一个新的前缀和数组。在`main`函数中,我们创建了一个测试数组,并打印出每个位置的前缀和。
阅读全文