#JC1026. 前缀和与差分
前缀和与差分
一、单项选择题(每题2分,共20分)
1、已知原数组a,前缀和数组s递推公式,i≥2时正确的是?()。
{{ select(1) }}
s[i] = s[i] + a[i‑1]s[i] = s[i‑1] - a[i]s[i] = s[i‑1] + a[i]s[i] = a[i] - a[i‑1]
2、使用前缀和求数组下标L~R的区间和,公式是?()。 {{ select(2) }}
s[R‑1]‑s[L]s[R]‑s[L‑1]s[R]‑s[L]a[R]‑a[L‑1]
3、数组下标从1开始,求长度为K的区间,终点为i,该区间和公式为?()。 {{ select(3) }}
s[i‑K]‑s[i]s[i]‑s[K]a[i]‑a[i‑K]s[i]‑s[i‑K]
4、差分数组d的计算公式是?()。
{{ select(4) }}
d[i] = a[i] + a[i‑1]d[i] = a[i] - a[i‑1]d[i] = s[i] - s[i‑1]d[i] = d[i‑1] + a[i]
5、关于差分数组性质描述正确的是?()。 {{ select(5) }}
- 差分数组求差分得到原数组
- 差分数组和原数组完全一样
- 差分数组求前缀和可以得到原数组
- 差分数组只能用来求区间和
6、数组a[0,2,9,5,11],前缀和数组s[0,2,11,16,27],求区间2~4的和是?()。
{{ select(6) }}
s[4]-s[1]s[4]-s[0]s[3]-s[1]s[4]-s[2]
7、前缀和算法最适合下面哪种场景?()。 {{ select(7) }}
- 只查询1次区间和
- 专门做数组排序
- 多次查询不同区间的区间和
- 只用来交换数组元素
8、原数组a={0,3,5,9,19},下标从1开始,d[3]差分值为?()。
{{ select(8) }}
- 5
- 14
- 9
- 4
9、长度K=3,区间终点i=7,则该区间的起点下标为?()。 {{ select(9) }}
- 3
- 5
- 4
- 7‑K‑1
10、n=10,K=3,遍历所有长度为K的区间,循环i的终止条件是?()。 {{ select(10) }}
i<=3i<=10i<Ki>10
二、判断题(每题2分,共10分)
11、前缀和数组s[i]代表原数组前i项的总和。()
{{ select(11) }}
- 正确
- 错误
12、求L~R区间和,当L=1时,公式s[R]-s[L‑1]等价于s[R]-s[0]。()
{{ select(12) }}
- 正确
- 错误
13、差分数组求差分运算,可以还原得到原始数组。() {{ select(13) }}
- 正确
- 错误
14、对于大量区间查询,使用前缀和比每次循环累加效率更高。() {{ select(14) }}
- 正确
- 错误
15、计算长度为K的区间和,循环遍历终点i范围是1~n。()
{{ select(15) }}
- 正确
- 错误