leetcode1333 餐厅过滤器

2020-04-07  本文已影响0人  奥利奥蘸墨水

题目

餐厅过滤器

分析

按照锁给的条件排序即可。

代码
struct Node{
    int id;
    int rating;
    int veganFriendly;
    int price;
    int distance;
    Node(vector<int>& vec){
        id = vec[0];
        rating = vec[1];
        veganFriendly = vec[2];
        price = vec[3];
        distance = vec[4];
    }
};

class Solution {
private:
    static bool cmp(const Node& n1, const Node& n2) {
        return n1.rating == n2.rating ? n1.id > n2.id : n1.rating > n2.rating;
    }
public:
    vector<int> filterRestaurants(vector<vector<int>>& restaurants, int veganFriendly, int maxPrice, int maxDistance) {
        vector<Node> vec;
        for (int i = 0; i < restaurants.size(); i++) {
            if (restaurants[i][2] >= veganFriendly && restaurants[i][3] <= maxPrice && restaurants[i][4] <= maxDistance) {
                vec.push_back(Node(restaurants[i]));
            }
        }

        sort(vec.begin(), vec.end(), cmp);
        
        vector<int> res;
        for (int i = 0; i < vec.size(); i++) {
            res.push_back(vec[i].id);
        }

        return res;
    }
};
上一篇 下一篇

猜你喜欢

热点阅读