工商局注册公司网站,静态网站被同行使用,安卓开发需要什么技术,长春网站制作公司题目#xff1a;
给你一个餐馆信息数组 restaurants#xff0c;其中 restaurants[i] [idi, ratingi, veganFriendlyi, pricei, distancei]。你必须使用以下三个过滤器来过滤这些餐馆信息。
其中素食者友好过滤器 veganFriendly 的值可以为 true 或者 false#xff0c;如果…题目
给你一个餐馆信息数组 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
输入restaurants [[1,4,1,40,10],[2,8,0,50,5],[3,8,1,30,4],[4,10,0,10,3],[5,1,1,15,1]], veganFriendly 1, maxPrice 50, maxDistance 10 输出[3,1,5] 解释 这些餐馆为 餐馆 1 [id1, rating4, veganFriendly1, price40, distance10] 餐馆 2 [id2, rating8, veganFriendly0, price50, distance5] 餐馆 3 [id3, rating8, veganFriendly1, price30, distance4] 餐馆 4 [id4, rating10, veganFriendly0, price10, distance3] 餐馆 5 [id5, rating1, veganFriendly1, price15, distance1] 在按照 veganFriendly 1, maxPrice 50 和 maxDistance 10 进行过滤后我们得到了餐馆 3, 餐馆 1 和 餐馆 5按评分从高到低排序。 示例 2
输入restaurants [[1,4,1,40,10],[2,8,0,50,5],[3,8,1,30,4],[4,10,0,10,3],[5,1,1,15,1]], veganFriendly 0, maxPrice 50, maxDistance 10 输出[4,3,2,1,5] 解释餐馆与示例 1 相同但在 veganFriendly 0 的过滤条件下应该考虑所有餐馆。 示例 3
输入restaurants [[1,4,1,40,10],[2,8,0,50,5],[3,8,1,30,4],[4,10,0,10,3],[5,1,1,15,1]], veganFriendly 0, maxPrice 30, maxDistance 3 输出[4,5]
提示
1 restaurants.length 10^4 restaurants[i].length 5 1 idi, ratingi, pricei, distancei 10^5 1 maxPrice, maxDistance 10^5 veganFriendlyi 和 veganFriendly 的值为 0 或 1 。 所有 idi 各不相同。
java代码
class Solution {public ListInteger filterRestaurants(int[][] restaurants, int veganFriendly, int maxPrice, int maxDistance) {int n restaurants.length;Listint[] filtered new ArrayListint[]();for (int i 0; i n; i) {if (restaurants[i][3] maxPrice restaurants[i][4] maxDistance !(veganFriendly 1 restaurants[i][2] 0)) {filtered.add(restaurants[i]);}}Collections.sort(filtered, (a, b) - {if (a[1] ! b[1]) {return b[1] - a[1];} else {return b[0] - a[0];}});ListInteger res new ArrayListInteger();for (int[] v : filtered) {res.add(v[0]);}return res;}
}