• 2023-09-27 LeetCode每日一题(餐厅过滤器)


    2023-09-27每日一题

    一、题目编号

    1333. 餐厅过滤器
    
    • 1

    二、题目链接

    点击跳转到题目位置

    三、题目描述

    给你一个餐馆信息数组 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 。

    示例 1:
    在这里插入图片描述

    示例 2:
    在这里插入图片描述
    示例3:
    在这里插入图片描述
    提示:

    1 <= restaurants.length <= 104
    restaurants[i].length == 5
    1 <= idi, ratingi, pricei, distancei <= 105
    1 <= maxPrice, maxDistance <= 105
    veganFriendlyi 和 veganFriendly 的值为 0 或 1 。
    所有 idi 各不相同。

    四、解题代码

    class Solution {
    public:
        vector<int> filterRestaurants(vector<vector<int>>& restaurants, int veganFriendly, int maxPrice, int maxDistance) {
            int n = restaurants.size();
            vector<vector<int>> filtered;
            for (int i = 0; i < n; i++) {
                if (restaurants[i][3] <= maxPrice && restaurants[i][4] <= maxDistance && !(veganFriendly && !restaurants[i][2])) {
                    filtered.push_back(restaurants[i]);
                }
            }
            sort(filtered.begin(), filtered.end(), [](vector<int> &v1, vector<int> &v2) -> bool {
                return v1[1] > v2[1] || (v1[1] == v2[1] && v1[0] > v2[0]);
            });
            vector<int> res;
            for (auto &v : filtered) {
                res.push_back(v[0]);
            }
            return res;
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    五、解题思路

    (1) 按照题目的要求排序即可。

  • 相关阅读:
    初阶数据结构学习记录——열셋 排序(2)
    设计模式--建造者模式
    UI线程和bitmap
    【算法|动态规划No.18】leetcode718. 最长重复子数组
    Pattern Recognition投稿经验
    【无标题】
    CenterNet复现
    罗克韦尔AB PLC Logix5000中如何创建标签并使用标签进行编程?
    【算法-贪心】无重叠区间-力扣 435 题
    前端图片文件压缩方案
  • 原文地址:https://blog.csdn.net/qq_56086076/article/details/133362921