mirror of
				https://gitee.com/coder-xiaomo/leetcode-problemset
				synced 2025-11-04 19:53:12 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<p>在考场里,有 <code>n</code> 个座位排成一行,编号为 <code>0</code> 到 <code>n - 1</code>。</p>
 | 
						||
 | 
						||
<p>当学生进入考场后,他必须坐在离最近的人最远的座位上。如果有多个这样的座位,他会坐在编号最小的座位上。(另外,如果考场里没有人,那么学生就坐在 <code>0</code> 号座位上。)</p>
 | 
						||
 | 
						||
<p>设计一个模拟所述考场的类。</p>
 | 
						||
 | 
						||
<p>实现 <code>ExamRoom</code> 类:</p>
 | 
						||
 | 
						||
<ul>
 | 
						||
	<li><code>ExamRoom(int n)</code> 用座位的数量 <code>n</code> 初始化考场对象。</li>
 | 
						||
	<li><code>int seat()</code> 返回下一个学生将会入座的座位编号。</li>
 | 
						||
	<li><code>void leave(int p)</code> 指定坐在座位 <code>p</code> 的学生将离开教室。保证座位 <code>p</code> 上会有一位学生。</li>
 | 
						||
</ul>
 | 
						||
 | 
						||
<p> </p>
 | 
						||
 | 
						||
<p><strong>示例 1:</strong></p>
 | 
						||
 | 
						||
<pre>
 | 
						||
<strong>输入:</strong>
 | 
						||
["ExamRoom", "seat", "seat", "seat", "seat", "leave", "seat"]
 | 
						||
[[10], [], [], [], [], [4], []]
 | 
						||
<strong>输出:</strong>
 | 
						||
[null, 0, 9, 4, 2, null, 5]
 | 
						||
<strong>解释:</strong>
 | 
						||
ExamRoom examRoom = new ExamRoom(10);
 | 
						||
examRoom.seat(); // 返回 0,房间里没有人,学生坐在 0 号座位。
 | 
						||
examRoom.seat(); // 返回 9,学生最后坐在 9 号座位。
 | 
						||
examRoom.seat(); // 返回 4,学生最后坐在 4 号座位。
 | 
						||
examRoom.seat(); // 返回 2,学生最后坐在 2 号座位。
 | 
						||
examRoom.leave(4);
 | 
						||
examRoom.seat(); // 返回 5,学生最后坐在 5 号座位。
 | 
						||
</pre>
 | 
						||
 | 
						||
<p> </p>
 | 
						||
 | 
						||
<p><strong>提示:</strong></p>
 | 
						||
 | 
						||
<ol>
 | 
						||
	<li><code>1 <= n <= 10<sup>9</sup></code></li>
 | 
						||
	<li>保证有学生正坐在座位 <code>p</code> 上。</li>
 | 
						||
	<li><code>seat</code> 和 <code>leave</code> 最多被调用 <code>10<sup>4</sup></code> 次。</li>
 | 
						||
</ol>
 |