LeetCode 1942. 最小未被占据椅子的编号(set)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

有 n 个朋友在举办一个派对,这些朋友从 0 到 n - 1 编号。
派对里有 无数 张椅子,编号为 0 到 infinity 。
当一个朋友到达派对时,他会占据 编号最小未被占据的椅子。

比方说,当一个朋友到达时,如果椅子 0 ,1 和 5 被占据了,那么他会占据 2 号椅子。
当一个朋友离开派对时,他的椅子会立刻变成未占据状态。
如果同一时刻有另一个朋友到达,可以立即占据这张椅子。

给你一个下标从 0 开始的二维整数数组 times ,其中 times[i] = [arrivali, leavingi] 表示第 i 个朋友到达和离开的时刻,同时给你一个整数 targetFriend 。
所有到达时间 互不相同

请你返回编号为 targetFriend 的朋友占据的 椅子编号 。

示例 1:
输入:times = [[1,4],[2,3],[4,6]], targetFriend = 1
输出:1
解释:
- 朋友 0 时刻 1 到达,占据椅子 0- 朋友 1 时刻 2 到达,占据椅子 1- 朋友 1 时刻 3 离开,椅子 1 变成未占据。
- 朋友 0 时刻 4 离开,椅子 0 变成未占据。
- 朋友 2 时刻 4 到达,占据椅子 0 。
朋友 1 占据椅子 1 ,所以返回 1 。示例 2:
输入:times = [[3,10],[1,5],[2,6]], targetFriend = 0
输出:2
解释:
- 朋友 1 时刻 1 到达,占据椅子 0- 朋友 2 时刻 2 到达,占据椅子 1- 朋友 0 时刻 3 到达,占据椅子 2- 朋友 1 时刻 5 离开,椅子 0 变成未占据。
- 朋友 2 时刻 6 离开,椅子 1 变成未占据。
- 朋友 0 时刻 10 离开,椅子 2 变成未占据。
朋友 0 占据椅子 2 ,所以返回 2 。提示:
n == times.length
2 <= n <= 10^4
times[i].length == 2
1 <= arrivali < leavingi <= 10^5
0 <= targetFriend <= n - 1
每个 arrivali 时刻 互不相同 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/the-number-of-the-smallest-unoccupied-chair
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 使用 set 对 <离开时间,拿的号码> 自动排序,当前人要取号之前,先将时间到了要离开的人的号放回
  • 再从没有取的号码里,拿出最小的,使用 set 实现
class Solution {
public:int smallestChair(vector<vector<int>>& times, int targetFriend) {int n = times.size();vector<int> id(n);iota(id.begin(), id.end(), 0); // 编号 0 - n-1sort(id.begin(), id.end(), [&](auto a, auto b){if(times[a][0] == times[b][0])return times[a][1] < times[b][1];return times[a][0] < times[b][0];}); // 排序先来的先取号,先走的,先放回号码set<int> untake(id.begin(), id.end()); // 没拿的号码set<pair<int,int>> leaveTime; // 离开时间,拿的号码,自动排序,时间早的先离开for(auto idx : id){while(!leaveTime.empty() && (*leaveTime.begin()).first <= times[idx][0]) {   // 到达之前,有人离开int num = (*leaveTime.begin()).second;//拿的号码untake.insert(num);//放回号码leaveTime.erase(leaveTime.begin());//离开了}if(idx == targetFriend)return *untake.begin();int takeNum = *untake.begin();//分配号码untake.erase(takeNum);leaveTime.insert({times[idx][1], takeNum});}return -1;}
};

264 ms 71.2 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

python哪本书好看_python入门看哪本书好

推荐几本适合python初学者的书。《Python编程 从入门到实战》本书中涵盖的内容是比较精简的&#xff0c;没有艰深晦涩的概念&#xff0c;最重要的是每个小结都附带有”动手试一试”环节&#xff0c;学编程最佳的方式就是多动手、多动脑。很多初学者看完书之后不知道下一步怎么办…

java mysql geo_GEO数据库简介

为了支持公共使用和散布基因表达数据&#xff0c;NCBI开始了基因表达汇编(GEO)计划。GEO是努力建立一个基因表达数据仓库和在线资源&#xff0c;用于从任何物种或人造的来源检索基因表达数据。来自microarray&#xff0c;高密度寡核苷酸array(HAD)&#xff0c;杂交膜(filter)和…

对每个小组的评论和建议

1、极速蜗牛&#xff1a;总体上已经有了一个小游戏的基本轮廓&#xff0c;虽然还没有达到预期的效果&#xff0c;但是能看到他们的进度。不过这次我们只看到了一直在反弹&#xff0c;对于一个游戏来说&#xff0c;娱乐性是很重要的&#xff0c;但是在这个游戏中我们没有看到很大…

vue路由懒加载_优化vue项目的首屏加载速度

最近使用vue-cli3构建了一个小型的博客系统&#xff0c;完工之后&#xff0c;build打包出来发现一个chunk-vendors包就有1.1m&#xff0c;部署上去之后&#xff0c;访问的时候&#xff0c;首屏加载非常慢。居然需要21s&#xff0c;体验极差。这是打包的结果截图根据这种情况&am…

LeetCode 1943. 描述绘画结果(差分思想)

文章目录1. 题目2. 解题1. 题目 给你一个细长的画&#xff0c;用数轴表示。 这幅画由若干有重叠的线段表示&#xff0c;每个线段有 独一无二 的颜色。 给你二维整数数组 segments &#xff0c;其中 segments[i] [starti, endi, colori] 表示线段为 半开区间 [starti, endi) 且…

java浏览器拖拽_使用Java强制移动浏览器缩小

在我的网络应用中&#xff0c;我有一些缩略图&#xff0c;可在单击时打开一个灯箱。 在移动设备上&#xff0c;缩略图很小&#xff0c;用户通常会放大。问题是&#xff0c;单击播放时&#xff0c;灯箱在可见区域之外(他们必须滚动到灯箱才能观看视频)。 是否可以强制移动浏览器…

Git学习笔记01--初始化设置

1、查看git版本 $ git --version 2、设置用户姓名和邮箱 $ git config --global user.name “Craftor” $ git config --global usrer.email “craftor0924gmail.com” 3、设置命令别名 $ git config --system alias.st status $ git config --system alias.ci commit $ git co…

LeetCode 1944. 队列中可以看到的人数(单调栈)

文章目录1. 题目2. 解题1. 题目 有 n 个人排成一个队列&#xff0c;从左到右 编号为 0 到 n - 1 。 给你以一个整数数组 heights &#xff0c;每个整数 互不相同&#xff0c;heights[i] 表示第 i 个人的高度。 一个人能 看到 他右边另一个人的条件是这两人之间的所有人都比他…

yolov2训练_一文看懂YOLO v2

我的CSDN博客&#xff1a;https://blog.csdn.net/litt1e我的公众号&#xff1a;工科宅生活概述新的YOLO版本论文全名叫“YOLO9000: Better, Faster, Stronger”&#xff0c;相较于YOLO主要有两个大方面的改进&#xff1a;第一&#xff0c;作者使用了一系列的方法对原来的YOLO多…

mysql 字符串搜_mysql – 在表中搜索字符串的SQL查询?

嗨,我想在存储在mysql数据库中的表中搜索特定的字符串.表格结构如下&#xff1a; –--------------------------------------------------------------------------| day | 9-10 | 10-11 | 11-12 | 12-1 | 1-2 | 2-3 | 3-4 ||------------------------------------------------…

python语言画心_python语言还是java如何用python画爱心

用python绘制爱心的基本步骤如下&#xff1a;002pc.com对《python语言还是java如何用python画爱心》总结来说&#xff0c;为我们学习Python很实用。首先先下载安装好python程序。在我们自己的电脑上找到python 的IDLE工具。2.然后打开IDLE,新建一个文件&#xff0c;命名为test1…

java的foeachr循环_for循环和Dowhile循环的应用

DoWhile循环{public static void main(String[] args) {int i 0;int sum 0;do {sum sum i;i;} while (i < 100);System.out.println(sum);}}{int a 0;while (a<0){System.out.println(a);a;}System.out.println("");do {System.out.println(a);a;}while (…

LeetCode 1945. 字符串转化后的各位数字之和

文章目录1. 题目2. 解题1. 题目 给你一个由小写字母组成的字符串 s &#xff0c;以及一个整数 k 。 首先&#xff0c;用字母在字母表中的位置替换该字母&#xff0c;将 s 转化 为一个整数&#xff08;也就是&#xff0c;‘a’ 用 1 替换&#xff0c;‘b’ 用 2 替换&#xff…

codeforces 303 div2 E

赤裸裸的最短路&#xff0c;需要注意下枚举过程就好了。直接贴上别人的代码&#xff0c;发现他的代码挺符合我的风格&#xff0c;以后就这样写了。#include <bits/stdc.h>using namespace std;struct node{int y,z,id;node(){}node(int y,int z,int id):y(y),z(z),id(id)…

LeetCode 1955. 统计特殊子序列的数目

文章目录1. 题目2. 解题1. 题目 特殊序列 是由 正整数 个 0 &#xff0c;紧接着 正整数 个 1 &#xff0c;最后 正整数 个 2 组成的序列。 比方说&#xff0c;[0,1,2] 和 [0,0,1,1,1,2] 是特殊序列。 相反&#xff0c;[2,1,0] &#xff0c;[1] 和 [0,1,2,0] 就不是特殊序列。…

java 中batch_java相关:Mybatis中使用updateBatch进行批量更新

java相关&#xff1a;Mybatis中使用updateBatch进行批量更新发布于 2020-7-13|复制链接摘记: 背景描述&#xff1a;通常如果需要一次更新多条数据有两个方式&#xff0c;(1)在业务代码中循环遍历逐条更新。(2)一次性更新所有数据(更准确的说是一条sql语句来更新所有数据&#x…

win7家庭版远程桌面补丁_无需惊慌!微软漏洞数月后再被“预警”打补丁即可防御...

9月7日&#xff0c;火绒接到用户反馈&#xff0c;咨询多家安全友商相继发布的漏洞预警一事。经火绒工程师确认&#xff0c;该漏洞(CVE-2019-0708)早在5月14日就已经被微软披露过&#xff0c;火绒也在第一时间发布了相关漏洞预警&#xff0c;并向火绒用户推送该漏洞补丁。此次多…

LeetCode 1954. 收集足够苹果的最小花园周长(数学)

文章目录1. 题目2. 解题1. 题目 给你一个用无限二维网格表示的花园&#xff0c;每一个 整数坐标处都有一棵苹果树。 整数坐标 (i, j) 处的苹果树有 ∣i∣∣j∣|i| |j|∣i∣∣j∣个苹果。 你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 &#xff0c;且每条边都与两条坐标…

python api数据接口_python写数据api接口

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

java星座测试需求分析_java十二星座 (快来测试你是什么星座吧)

无聊写个十二星座。。我发现我好像都是无聊的时候学习的。。。package 十二星座;import java.awt.*;import javax.swing.*;import java.awt.event.*;public class 十二星座 {public static void main(String args[]){new Fram();}}class Fram extends JFrame implements Action…