1# Runtime: 1587 ms (Top 72.81%) | Memory: 61.7 MB (Top 65.15%)23from bisect import bisect_left456class Solution:7def maxEnvelopes(self, envelopes: List[List[int]]) -> int:8envelopes = sorted(envelopes, key=lambda x: (x[0], -x[1]))9rst = []10for _, h in envelopes:11i = bisect_left(rst, h)12if i == len(rst):13rst.append(h)14else:15rst[i] = h16return len(rst)