如何高效刷题,python小屋刷题神器答案大全,如何高效刷题,python小屋刷题神器答案下载
而prefix的主要应用场景是在原数组没有被修改的情况下,频繁要求累计添加某个区间。
差分布序列的主要应用场景是频繁增减原序列某个区间的元素。
阶级差异:
def __init__(self,nums):
self.nums=nums
self . diff=self . make _ diff(self . nums)
defmake_diff(self,nums):
DIFF=[0 for _ in range(Len)nums]
差异[0]=数量[0]
forIinrange(1,len nums)):
差分[i]=nums[i] - nums[i-1]
退货差异
#将val添加到闭合区间[i,j]
#原理很简单。请记住将diff数组压回nums数组的过程。Diff[i]=3意味着nums[i.]的所有元素都加上3。那么,diff[j 1] -=3意味着进一步减少nums[j 1]中的所有元素。]由3。那不就是合并的那个nums[i.]
定义增量(自身,I,j,val):
self.diff[i]=val
ifj1len(self.diff):
self.diff[j 1] -=val
efRecover(self):
rdiff=[0f or _ in range(len(self . diff)]
rdiff[0]=self.diff[0]
forIinrange(1,Len ) self.nums)):
rdiff[I]=rdiff[I-1]self . diff[I]
退货差异
差异=差异([8,5,9,6,1]
Print (difference.diff))。
rdiff=difference.recover(
打印(rdiff)是
difference.increment (2,3,1))。
Print (difference.diff))。
rdiff=difference.recover(
打印(rdiff)是
结果:
[8,-3,4,- 3,-5]
[8、5、9、6、1]
[8,-3,5,- 3,-6]
[ 8,5,10,7,1 ]
请查看问题1109中的“航班预订统计”。
Labuladong算法
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。