题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个二位整数数组来代表一个商品的价格和美丽值,然后根据一系列价格,查询不高于该数值能得到的最大美丽值。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution:
def maximumBeauty(self, items: List[List[int]], queries: List[int]) -> List[int]:
items.sort(key= lambda items : items[0])

k = 0
for i in range(1, len(items)):
if items[i][1] > items[k][1]:
k += 1
items[k] = items[i]

for i, x in enumerate(queries):
j = bisect_right(items, x, 0, k+1, key=lambda items:items[0])
queries[i] = items[j-1][1] if j else 0

return queries