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 book in bookings:
first, last, seats = book[0], book[1], book[2]
diff[first-1] += seats # 第first-1索引趟航班增加seats人数
if last < n:
diff[last] -= seats # seats人数只截止到last-1趟航班, 所以从第[(last-1)+1]趟航班减少seats人数
for i in range(1, n):
diff[i] += diff[i-1]
return diff
364



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



