list.sort(key = lambda x: (x[0], x[1]。。。))的用法可以快速解决问题,
class Solution:
def filterRestaurants(self, restaurants: List[List[int]], veganFriendly: int, maxPrice: int, maxDistance: int) -> List[int]:
cand = []
if veganFriendly == 1:
for idx, rest in enumerate(restaurants):
if rest[2] == veganFriendly and rest[3] <= maxPrice and rest[4] <= maxDistance:
cand.append(rest)
else:
for idx, rest in enumerate(restaurants):
if rest[3] <= maxPrice and rest[4] <= maxDistance:
cand.append(rest)
cand.sort(key = lambda x:(x[1], x[0]), reverse = True)
res = []
for can in cand:
res.append(can[0])
return res
不过面试里没准要自己写比较器之类的吧。题目里的餐厅ID不全是1、2、3。。。算是一个坑?。。