介绍
1. 什么是差分数组
将原数组每个值减去前一个值,得到的新数组是差分数组 d i s [ k ] = a [ k ] − a [ k − 1 ] dis[k] = a[k] - a[k-1] dis[k]=a[k]−a[k−1]
如:
原数组为
[
1
,
2
,
3
,
5
]
[1,2,3,5]
[1,2,3,5]
得到的差分数组为
[
1
,
1
,
1
,
2
]
[1,1,1,2]
[1,1,1,2]
通过计算差分数组的前缀和,可以得到原数组。
[
1
,
1
+
1
,
1
+
1
+
1
,
1
+
1
+
1
+
2
]
[1,1+1,1+1+1,1+1+1+2]
[1,1+1,1+1+1,1+1+1+2]
2. 为什么能解决连续空间改变相同值的问题
更新区间11到100,将其加1 。那么需要更新90次数据。文章来源:https://www.toymoban.com/news/detail-476291.html
如果使用差分数组记录数据,只需要更新位置11和101,将位置11的差分数组值加1,位置101的差分数组值减1,
即可记录这次更新信息,减少了更新次数。文章来源地址https://www.toymoban.com/news/detail-476291.html
例题
- 1094 拼车
到了这里,关于【算法】【差分数组】解决连续空间改变相同值的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!