LeetCode刷题日记(1333. 餐厅过滤器)

'''
给你一个餐馆信息数组 restaurants,
其中  restaurants[i] = [idi, ratingi, veganFriendlyi, pricei, distancei]。
你必须使用以下三个过滤器来过滤这些餐馆信息。
其中素食者友好过滤器 veganFriendly 的值可以为 true 或者 false,
如果为 true 就意味着你应该只包括 veganFriendlyi 为 true 的餐馆,为 false 则意味着可以包括任何餐馆。
此外,我们还有最大价格 maxPrice 和最大距离 maxDistance 两个过滤器,它们分别考虑餐厅的价格因素和距离因素的最大值。
过滤后返回餐馆的 id,按照 rating 从高到低排序。如果 rating 相同,那么按 id 从高到低排序。
简单起见, veganFriendlyi 和 veganFriendly 为 true 时取值为 1,为 false 时,取值为 0 。
'''
from typing import List
class Solution:
    def filterRestaurants(self, restaurants: List[List[int]], veganFriendly: int, maxPrice: int, maxDistance: int) -> List[int]:
        if not restaurants:
            return []
        # restaurants[i] = [idi, ratingi, veganFriendlyi, pricei, distancei]
        if veganFriendly:
            restaurants = [restaurant for restaurant in restaurants if restaurant[2] == 1]
        restaurants = [restaurant for restaurant in restaurants if restaurant[3] <= maxPrice and restaurant[4] <= maxDistance]
        restaurants.sort(key=lambda x: (x[1], x[0]), reverse=True)
        return [restaurant[0] for restaurant in restaurants]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值