题目
分析
按照锁给的条件排序即可。
代码
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;
}
};
网友评论