Delivering Boxes from Storage to Ports LeetCode solution in Python
1from sortedcontainers import SortedList as MonoQueue234class Solution:5def boxDelivering(self, A, __, B, W):6n = len(A)78def slidingWindow():9l = 010cW = 011for r in range(n):12cW += A[r][1]13while cW > W or r - l + 1 > B:14cW -= A[l][1]15l += 116yield l, r1718Seg = MonoQueue(key=lambda t: t[1])19addAll = 020olddp = 021for l, r in slidingWindow():22if r != 0:23addAll += A[r][0] != A[r - 1][0]24Seg.add((r, olddp - addAll + 2))25while Seg[0][0] < l:26Seg.pop(0)27olddp = Seg[0][1] + addAll28return olddp