​LeetCode解法汇总1333. 餐厅过滤器​

目录链接:

力扣编程题-解法汇总_分享+记录-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 [id=1, rating=4, veganFriendly=1, price=40, distance=10]
餐馆 2 [id=2, rating=8, veganFriendly=0, price=50, distance=5]
餐馆 3 [id=3, rating=8, veganFriendly=1, price=30, distance=4]
餐馆 4 [id=4, rating=10, veganFriendly=0, price=10, distance=3]
餐馆 5 [id=5, rating=1, veganFriendly=1, price=15, distance=1] 
在按照 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 各不相同。

解题思路:

* 解题思路:

* 首先根据isVeganFriendly,maxPriceThreshold,maxDistanceThreshold进行过滤。

* 过滤完成后,按照restaurants[1]排序,如果restaurants[1]相同则按照restaurants[0]排序。

代码:

class Solution {
public:vector<int> filterRestaurants(vector<vector<int>> &restaurants, int isVeganFriendly, int maxPriceThreshold, int maxDistanceThreshold){vector<vector<int>> candidates;for (vector<int> 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(), [](vector<int> v1, vector<int> v2){if (v1[1] != v2[1]){return v1[1]>v2[1];}return v1[0] > v2[0]; });vector<int> result;for (vector<int> restaurant : candidates){result.push_back(restaurant[0]);}return result;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/89712.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目标追踪学习经验总结

标题目标追踪算法学习经验总结   最近对目标追踪算法进行了学习&#xff0c;以下是我的学习经验&#xff0c;如有不对之处&#xff0c;欢迎大家指正。 1、简介 1.1 定义 目标跟踪是通过分析视频图片序列&#xff0c;对检测出的各个候选目标区域实施匹配&#xff0c;定位出这…

【面试八股】IP协议八股

IP协议八股 子网掩码的作用为什么IP协议需要分片IP协议什么时候需要分片IP协议是怎么进行分片的那么IP协议是如果进行标识属于同一个分片呢&#xff1f;TCP协议和UDP协议将数据交给IP协议之后&#xff0c;是否需要分片传输&#xff1f; 子网掩码的作用 用来标识网络号和主机号…

029-从零搭建微服务-消息队列(一)

写在最前 如果这个项目让你有所收获&#xff0c;记得 Star 关注哦&#xff0c;这对我是非常不错的鼓励与支持。 源码地址&#xff08;后端&#xff09;&#xff1a;mingyue: &#x1f389; 基于 Spring Boot、Spring Cloud & Alibaba 的分布式微服务架构基础服务中心 源…

Java基础常考知识点(基础、集合、异常、JVM)

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有需要我的支持&#xff0c;请私信或评论留言&#xff01; Java基础常考知识点…

笔记本摄像头怎么打开?记牢这5个简单方法!

“我有一个紧急视频会议&#xff0c;但是关键时刻我的笔记本电脑摄像头居然打不开了&#xff0c;真的让我很崩溃。有什么方法可以快速解决这个问题吗&#xff1f;非常感谢&#xff01;” 在互联网时代&#xff0c;电脑对我们来说非常重要。而借助电脑摄像头与朋友交流或者与同事…

601-体育馆的人流量

文章目录 601-体育馆的人流量1. 题目2. 思路3. 解决4. 运行结果 601-体育馆的人流量 1. 题目 2. 思路 思路&#xff1a;查询Stadium表中人流量超过100的记录&#xff0c;将查询结果与自身的临时表连接&#xff0c;再使用where获得满足条件的记录 查询Stadium表中人流量超过10…

asp.net服装管理系统三层架构

asp.net服装管理系统三层架构说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 主要技术&#xff1a; 基于asp.net架构和sql server数据库&#xff0c;并采用EF实体模型开发。 三层架构并采用EF实体模型开发 功能模块&#xff1a; 运行环境&#xff1…

CyclicBarrier 、CountDownLatch 、Semaphore 的用法

1 CountDownLatch&#xff08;线程计数器 &#xff09; CountDownLatch类位于java.util.concurrent 包下&#xff0c;利用它可以实现类似计数器的功能。比如有一个任务 A&#xff0c;它要等待其他 4 个任务执行完毕之后才能执行&#xff0c;此时就可以利用 CountDownLatch 来实…

第二证券:国庆档票房有望延续复苏态势 海风拐点已至

昨日&#xff0c;两市股指盘中强势轰动上扬&#xff0c;创业板指早盘一度涨近2%&#xff0c;随后涨幅逐渐收窄。到收盘&#xff0c;沪指涨0.16%报3107.32点&#xff0c;深成指涨0.44%报10104.32点&#xff0c;创业板指涨0.82%报2006.22点&#xff0c;两市算计成交7165亿元&…

iOS 视频压缩 mov转mp4 码率

最近还是因为IM模块的功能&#xff0c;IOS录制MOV视频发送后&#xff0c;安卓端无法播放&#xff0c;迫不得已兼容将MOV视频转为MP4发送。 其中mov视频包括4K/24FPS、4K/30FPS、4K/60FPS、720p HD/30FPS、1080p HD/30FPS、1080p HD/60FPS&#xff01; 使用AVAssetExportSessi…

排序学习总结

取每个对象的内接矩形框&#xff0c;然后再排序&#xff0c;根据排序的结果确定原对象顺序。 inner_rectangle1(RegionAffineTrans1, Row1, Column1, Row2, Column2) gen_rectangle1(Rect,Row1, Column1, Row2, Column2) sort_region(Rect,RectSort,character,true, row)count…

4k、VR与万兆光网

“全光万兆”对VR意义重大。 pico4的分辨率 PICO 4 的单眼分辨率是 2160 2160&#xff0c;整体分辨率高达 4320 2160。这是一款高性能的 VR 一体机&#xff0c;采用了 2.56 英寸的 Fast-LCD 屏幕&#xff0c;最高可实现 90Hz 刷新率&#xff0c;还有 1200 PPI 和 20.6 PPD 的…

一、2023.9.27.C++基础.1

回答问题一定要有逻辑性&#xff0c;我将从 这个技术是什么&#xff1f; 为什么要有这个技术&#xff1f; 这个技术底层是怎么实现的&#xff1f; 这个技术的优点缺点&#xff1f; 这个技术所适合的使用场景&#xff1f; 以下五个方面来回答问题。 文章目录 一、C基础部分&…

行为型设计模式——责任链模式

摘要 责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象。 一、责任链模式意图 职责链模式&#xff08;Chain Of Responsibility&#xff09; 是一种行为设…

弱信号的采样与频谱分析(修订中...)

1.频谱混叠效应 - 波形数据抽样 这是一组经过抽样的数据的频谱&#xff0c;红圈圈出的两条谱线&#xff0c;是我们需要关注的特征谱线。这个信号与右侧的临近信号比较&#xff0c;求频率比值&#xff0c;比值恒定与理论推导相符。再5取1降低采样率后&#xff0c;大致相同的频率…

接口测试--Postman常用断言

Postman的断言是用javascript语言写的 引入--什么是断言 结果中的特定属性或值与预期做对比&#xff0c;如果一致&#xff0c;则用例通过&#xff0c;如果不一致&#xff0c;断言失败&#xff0c;用例失败。断言&#xff0c;是一个完整测试用例所不可或缺的一部分&#xff0c…

Linux系统上使用SQLite

1. 安装SQLite 在Linux上安装SQLite非常简单。可以使用包管理器&#xff08;如apt、yum&#xff09;直接从官方软件源安装SQLite。例如&#xff0c;在Ubuntu上使用以下命令安装SQLite&#xff1a; sudo apt-get install sqlite32. 打开或创建数据库 要打开或创建一个SQLite数…

5月22日比特币披萨日,今天你吃披萨了吗?

比特币披萨日 1. Laszlo Hanyecz2. 最贵披萨诞生记3. 梭哈买披萨4. 未完待续 2010年5月22日&#xff0c;美国佛罗里达州的程序员Laszlo Hanyecz&#xff08;拉兹洛哈涅克斯&#xff09;用10000个比特币购买了棒约翰&#xff08;Papa Johns&#xff09;比萨店一个价值25美元的奶…

什么人适合学NPDP产品经理认证?

NPDP产品经理认证&#xff0c;最适合学的就是产品经理了&#xff0c;但是证书没有局限性&#xff0c;适用于所有与产品开发相关的行业和领域&#xff0c;特别是那些需要提高产品成功率和效率的团队成员。就是一句话&#xff0c;只要你觉得有用&#xff0c;都可以考。 通过学习N…

Softing物联网(IoT)方案之OT/IT数据集成

一 利用数据提高效率和绩效 多年以来数据集成和工业物联网一直在推动着市场的发展&#xff0c;目前我们已经能够集成并成功使用先进的技术、大量的传感器和复杂的数据格式等。而在工业物联网或工业4.0中&#xff0c;还有运营技术&#xff08;OT&#xff09;和信息技术&#xf…