Put Boxes Into the Warehouse II

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from typing import List

class Solution:
    def maxBoxesInWarehouse(self, boxes: List[int], warehouse: List[int]) -> int:
        p1 = 0
        p2 = len(warehouse) - 1
        boxes.sort()
        res = 0
        i = len(boxes) - 1
        while i >= 0 and p1 <= p2:
            if boxes[i] <= warehouse[p1]:
                p1 += 1
                res += 1
            elif boxes[i] <= warehouse[p2]:
                p2 -= 1
                res += 1
            i -= 1
        return res