差分数组:适用于对数字列表中某区间元素频繁加减。
原数组nums,根据nums构造一个差分数组diff,diff[i]就是nums[i] 与nums[i - 1]之差。
python:
diff[0] = nums[0]
for i in range(1, len(nums)):
diff[i] = nums[i] - nums[i - 1]
如:nums[8, 6, 3, 7, 5,1]
根据差分数组还原成原数组
for i in range(len(nums)):
num[i] = diff[i] + nums[i - 1]
对数组某区间进行加减操作,如:对数组[left, right]区间的元素加val
diff[left] += val
diff[right + 1] -= val
如:对nums[1, 4]区间元素加3