当前位置: 首页 > article >正文

1847. 最近的房间

1847. 最近的房间


题目链接:1847. 最近的房间

代码如下:

class Solution 
{
public:
	vector<int> closestRoom(vector<vector<int>>& rooms, vector<vector<int>>& queries)
	{
		sort(rooms.begin(), rooms.end(), [&](vector<int>& a, vector<int>& b)
			{
				return a[1] > b[1];
			});

		vector<int> query_ids(queries.size());
		iota(query_ids.begin(), query_ids.end(), 0);
		//按照minSize从大到小排序
		ranges::sort(query_ids, {}, [&](int i) { return -queries[i][1]; });

		vector<int> res(queries.size(), -1);
		set<int> room_ids;
		int j = 0;
		for (int i : query_ids)
		{
			int prefered_id = queries[i][0], minSize = queries[i][1];
			while (j < rooms.size() && rooms[j][1] >= minSize)
			{
				room_ids.insert(rooms[j][0]);
				j++;
			}

			int diff = INT_MAX;
			auto it = room_ids.lower_bound(prefered_id);
			if (it != room_ids.begin())
			{
				auto p = prev(it);
				diff = prefered_id - *p;	//左边的差
				res[i] = *p;
			}
			if (it != room_ids.end() && *it - prefered_id < diff) //右边的差更小
			{
				res[i] = *it;
			}
		}
		return res;
	}
};

http://www.kler.cn/a/453969.html

相关文章:

  • 电子配件行业的未来之路:产品说明书数字化转型的力量
  • Linux内核 -- UIO (User-space I/O) 简介与使用笔记
  • FFmpeg在python里推流被处理过的视频流
  • windows C++ TCP客户端
  • Y3编辑器教程8:资源管理器与存档、防作弊设置
  • python通过正则匹配SQL
  • 【OCR】数据集合集!
  • 操作002:HelloWorld
  • 使用EasyExcel来动态生成表头
  • 安全筑堤,效率破浪 | 统一运维管理平台下的免密登录应用解析
  • 【Go】-限流器的四种实现方法
  • stm32能跑人工智能么
  • 【源码】Sharding-JDBC源码分析之SQL中影子库ShadowSQLRouter路由的原理
  • SOME/IP 入门1
  • C# 2024/12/26 周四
  • 【大语言模型】ACL2024论文-36 利用NLI和ChatGPT及编码簿知识进行零样本政治关系分类
  • LabVIEW生物医学信号虚拟实验平台
  • 我用Cursor+DeepSeek做了个飞书文档一键同步插件,免费使用!
  • Java八股汇总【MySQL】
  • 代码随想录算法训练营第五十二天 | 101. 孤岛的总面积 102.沉没孤岛 103.水流问题 104.建造最大岛屿
  • 流批一体向量化计算引擎 Flex 在蚂蚁的探索和实践
  • Java爬虫实战:深度解析VIP商品详情获取技术
  • AWS IAM Roles Anywhere 使用 OpenSSL 自签 CA 过程
  • 黑马Java面试教程_P9_JVM虚拟机
  • protobuf学习使用
  • 面试题整理12----K8s中Pod创建常见错误