思路:

  • 使用set(有序集合)记录seat的位置。
  • 如果set为空,放入索引为0的位置。
  • 遍历set,记录两个人之间距离的一半(pre+这个距离就是中点),如果这个距离比最大距离大,则记录pos和更新最大距离。因为1/2=0。所以将maxDist的初始值设为0。pre设为-1(表示第一元素钱前面没有元素)。pre表示cur前面的那个元素。
  • 最后判断如果放在n-1的位置上,距离是不是会大(n-1-pre>maxDsit),如果大就更新pos。
  • 得到pos后,将pos插入set,返回pos。
class ExamRoom {public:set<int> s;int n;ExamRoom(int N) {this->n=N;}int seat() {if(s.size()==0) {s.insert(0);return 0;}//set为空,直接插入int pos=0,pre=-1,maxDist=0;for(auto cur:s){int dist=(cur-pre)/2;//pre+dist就是元素应该放的位置if(dist>maxDist){//有更大的距离pos=pre==-1?0:pre+dist; //如果能进来,表示cur!=0,因为(0-(-1))/2=0; maxDist=dist;//更新dist      }pre=cur;}if(n-pre-1>maxDist) pos=n-1;//最后考虑n-1位置的情况s.insert(pos);return pos;}void leave(int p) {s.erase(p);}
};

leetcode-855. 考场就座相关推荐

  1. LeetCode 855. 考场就座

    855. 考场就座 [有序集合]用TreeSet存已经选好的座位,每次遍历所有的座位,如果两个之间的差值比当前max大,那么更新max和最后落座的位置.需要特别注意特判一下开头和结尾,因为有leave ...

  2. LeetCode - OrderMap - 855.考场就座

    题目 855.考场就座 难度 中等 在考场里,一排有 N 个座位,分别编号为 0, 1, 2, -, N-1 . 当学生进入考场后,他必须坐在能够使他与离他最近的人之间的距离达到最大化的座位上.如果有 ...

  3. 855. 考场就座(高频题)

    855. 考场就座 题目 解题思路 代码 题目 在考场里,一排有 N 个座位,分别编号为 0, 1, 2, -, N-1 . 当学生进入考场后,他必须坐在能够使他与离他最近的人之间的距离达到最大化的座 ...

  4. LeetCode解析------855.考场就座

    题目: 在考场里,一排有 N 个座位,分别编号为 0, 1, 2, -, N-1 . 当学生进入考场后,他必须坐在能够使他与离他最近的人之间的距离达到最大化的座位上.如果有多个这样的座位,他会坐在编号 ...

  5. 【855. 考场就座】

    来源:力扣(LeetCode) 描述: 在考场里,一排有 N 个座位,分别编号为 0, 1, 2, ..., N-1 . 当学生进入考场后,他必须坐在能够使他与离他最近的人之间的距离达到最大化的座位上 ...

  6. Leetcode 855. Exam Room 考场就座:提供两种解法

    Leetcode 855. Exam Room 考场就座: 提供两种解法 855. Exam Room 考场就座(两种解法) 题目描述 示例: 解答1 代码1 解答2 代码2 855. Exam Ro ...

  7. Leetcode 855:考场就座

    题目描述 在考场里,一排有 N 个座位,分别编号为 0, 1, 2, ..., N-1 . 当学生进入考场后,他必须坐在能够使他与离他最近的人之间的距离达到最大化的座位上.如果有多个这样的座位,他会坐 ...

  8. JAVA程序设计:考场就座(LeetCode:855)

    在考场里,一排有 N 个座位,分别编号为 0, 1, 2, ..., N-1 . 当学生进入考场后,他必须坐在能够使他与离他最近的人之间的距离达到最大化的座位上.如果有多个这样的座位,他会坐在编号最小 ...

  9. 【LeetCode - 855】考场就座

    文章目录 1.题目描述 2.解题思路 3.解题代码 1.题目描述 2.解题思路 初始化:定义一个 TreeSet 存储已经占有的座位号,该数据结构会自动从小到大排序: seat: 1)定义一个全局最优 ...

  10. LeetCode 考场就座

    在考场里,一排有 N 个座位,分别编号为 0, 1, 2, -, N-1 . 当学生进入考场后,他必须坐在能够使他与离他最近的人之间的距离达到最大化的座位上.如果有多个这样的座位,他会坐在编号最小的座 ...

最新文章

  1. php 类中的各种拦截器
  2. 2018-3-19 损失函数与适应度函数,稳定选择与分裂选择
  3. 【二叉树】先序序列为a,b,c,d 的不同二叉树的个数
  4. 实验4:正确的为各种属性赋值||实验7:通过abstract属性创建一个模板bean||实验8:bean之间的依赖||实验9:测试bean的作用域,分别创建单实例和多实例的bean★(测试)
  5. 将excel用VBA生成指定格式的TXT文件
  6. 中石油训练赛 - Block(二维前缀和+思维)
  7. 测试人员如何搭建自动打包部署平台?(具体详细步骤及下载地址)
  8. 泛型 (Generics)一定是最易懂简单的
  9. NPOI Excel 单元格背景颜色对照表
  10. 深度学习——Optimizer算法学习笔记
  11. 转-----EasyCHM制作教程
  12. Linux系统的关机重启命令
  13. 《花雕学AI》07:AI脑洞大开-盘点最火爆人工智能ChatGPT的23种新颖用法
  14. 全链路前端性能优化方案
  15. 已知等价关系求商集_等价关系习题.docx
  16. 每周市场观察:XRP遭起诉下跌近50% 圣诞仍是牛市 | TokenInsight
  17. mkfs:磁盘格式化
  18. 【智能制造】索菲亚家居智能工厂与物流系统建设
  19. 自主可控!搭载龙芯二号,飞凌嵌入式FET-2K0500-C核心板发布
  20. C语言qsort排序

热门文章

  1. Matlab学习笔记note1
  2. mysql 权限设置 降权
  3. HotDB Server 开放下载先知篇--常用名词解释
  4. Decoupling Representation and Classifier for Long-Tailed Recognition论文笔记
  5. 沈阳工学院本科有计算机吗,沈阳工学院是几本
  6. 关于录音器材,你想要知道的都在这里
  7. Bootstrap中的color,bgcolor,background-clor,border-color
  8. WZOI-306找第一个只出现一次的字符
  9. 英语sidewalk和pavement和footpath和footway区别?
  10. DDA算法画直线----计算机图形学