- 基本前缀和
- 前缀和数组()
- 前缀和的求法实现
- 前缀和的作用:前缀和的主要作用是快速计算数组中某一段数的和。通过预先计算并存储每个位置的前缀和,可以在 O(1) 的时间复杂度内获取任意一段数的和,而不需要重复计算。这对于需要频繁进行区间和查询的问题非常有用。
- 前缀和的缺点:
- 需要额外的空间:为了存储前缀和数组,需要额外的 O(n) 空间,增加了存储开销。
- 不适用于动态数组:如果数组元素会发生变化,每次发生变化都需要重新计算前缀和数组,导致计算效率下降。
- 一维前缀的时间复杂度:因为是遍历一遍数组a就可以得到前缀和数组,所以前缀和的时间复杂度是O (n)。 如果是m次查找的话,即为O (n+m)的时间复杂度。
- 实现思路:
-
输入整数的个数和求和次数。 输入整数,并将其存入一个向量(vector)中。 创建一个前缀和向量 S,并初始化为 0。 遍历原始数组,计算前缀和并将其存入向量 S 中。 通过多次查询,输入求和的范围,并输出对应范围内的和。 - 基本实现:
- 二维前缀和
- 相比一维前缀和仅仅多了一维具体方法类似
- 求某一段和变成了 这个关系可以通过画图得出
- 具体实现:(不知道这里为什么一定要把vector限制范围才能跑起来)
最后唠两句,这个活动居然只要求500字但是代码量不能高于百分之五十,属实有点麻。不如一天只更一个算法,还能偷懒。