html5 手机网站 模板,公司网络部署方案,公司内网怎么搭建,wordpress顺序设置别名目录链接#xff1a;
力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目#xff1a;
https://github.com/September26/java-algorithms 原题链接#xff1a;力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台 描述#xff1a;
给你一个餐…目录链接
力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目
https://github.com/September26/java-algorithms 原题链接力扣LeetCode官网 - 全球极客挚爱的技术成长平台 描述
给你一个餐馆信息数组 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^4restaurants[i].length 51 idi, ratingi, pricei, distancei 10^51 maxPrice, maxDistance 10^5veganFriendlyi 和 veganFriendly 的值为 0 或 1 。所有 idi 各不相同。 解题思路
* 解题思路
* 首先根据isVeganFriendlymaxPriceThresholdmaxDistanceThreshold进行过滤。
* 过滤完成后按照restaurants[1]排序如果restaurants[1]相同则按照restaurants[0]排序。
代码
class Solution {
public:vectorint filterRestaurants(vectorvectorint restaurants, int isVeganFriendly, int maxPriceThreshold, int maxDistanceThreshold){vectorvectorint candidates;for (vectorint restaurant : restaurants){if (isVeganFriendly 1 restaurant[2] 0){continue;}if (restaurant[3] maxPriceThreshold){continue;}if (restaurant[4] maxDistanceThreshold){continue;}candidates.push_back(restaurant);}sort(candidates.begin(), candidates.end(), [](vectorint v1, vectorint v2){if (v1[1] ! v2[1]){return v1[1]v2[1];}return v1[0] v2[0]; });vectorint result;for (vectorint restaurant : candidates){result.push_back(restaurant[0]);}return result;}
};