-
发表于 2024.06.14
-
今天做的第二道差分数组题,上一道是1094-拼车,本质做法和上一道是一样的,只不过这道题左右都是闭区间。最后通过累加就地恢复为原数组即可。
class Solution: def corpFlightBookings(self, bookings: List[List[int]], n: int) -> List[int]: diff = [0] * n for first, last, seats in bookings: # 注意题目中的first, last是从1开始计数的 # 而我们的结果数组从0开始计数 # 因此需要-1 diff[first - 1] += seats # 此时这里的从1计数的last其实可以看成(从0计数的)开区间了 if last < n: diff[last] -= seats # 就地累加恢复数组 ans = diff for i in range(len(ans)): ans[i] += ans[i - 1] if i > 0 else 0 return ans
- LC 题目链接
-