Python
重点是读懂题目,标准差分数组解法!!!
参考答案:https://leetcode.cn/problems/corporate-flight-bookings/solutions/968214/hang-ban-yu-ding-tong-ji-by-leetcode-sol-5pv8/?envType=study-plan-v2&envId=labuladong-algorithm-note
差分数组的性质这段话想了半天,终于理解了,为了仅仅让原数组下标在[l,r]区间内的元素值增加 inc
首先需要将差分数组d[l]位置加 inc,这样下标 >= l 位置的元素都获得inc增量
其次,为了不影响原数组中下标大于 r 的元素,需要在d[r + 1]处减去inc,使得原数组下标 > r 的元素值不变.
class Solution:
def corpFlightBookings(self, bookings: List[List[int]], n: int) -> List[int]:
diff = [0] * n
for first, last, seats in bookings:
diff[first-1] += seats
if last < n:
diff[last] -= seats
for i in range(1, n):
diff[i] = diff[i] + diff[i-1]
return diff

被折叠的 条评论
为什么被折叠?



