Leetcode 1333. Filter Restaurants by Vegan-Friendly, Price and Distance
题目链接: Filter Restaurants by Vegan-Friendly, Price and Distance
难度:Medium
题目大意:
给出若干个饭店的信息,根据限制条件对这些饭店进行筛选,对筛选后的饭店按题目要求进行排序。
思路:
先对饭店进行筛选,用List来存储筛选后的饭店信息,然后按题目要求进行排序。也可以用PriorityQueue来实现。
代码
class Solution {
public List<Integer> filterRestaurants(int[][] restaurants, int veganFriendly, int maxPrice, int maxDistance) {
int n=restaurants.length;
List<int[]> list=new ArrayList<int[]>();
//存储符合条件饭店的编号和排名
if(veganFriendly==1){
for(int[] r:restaurants){
if(r[2]==1&&r[3]<=maxPrice&&r[4]<=maxDistance){
list.add(new int[]{r[0],r[1]});
}
}
}
else{
for(int[] r:restaurants){
if(r[3]<=maxPrice&&r[4]<=maxDistance){
list.add(new int[]{r[0],r[1]});
}
}
}
Collections.sort(list,new Comparator<int[]>(){
public int compare(int[] a,int[] b){
if(a[1]!=b[1]){
return b[1]-a[1];
}
else{
return b[0]-a[0];
}
}
});//对符合条件的饭店要题目要求进行排序
List<Integer> ans=new ArrayList<Integer>();
for(int i=0;i<list.size();i++){
ans.add(list.get(i)[0]);
}
return ans;
}
}