mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-05 15:31:43 +08:00
update
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
<p>给你一个整数 <code>n</code> ,共有编号从 <code>0</code> 到 <code>n - 1</code> 的 <code>n</code> 个会议室。</p>
|
||||
|
||||
<p>给你一个二维整数数组 <code>meetings</code> ,其中 <code>meetings[i] = [start<sub>i</sub>, end<sub>i</sub>]</code> 表示一场会议将会在 <strong>半闭</strong> 时间区间 <code>[start<sub>i</sub>, end<sub>i</sub>)</code> 举办。所有 <code>start<sub>i</sub></code> 的值 <strong>互不相同</strong> 。</p>
|
||||
|
||||
<p>会议将会按以下方式分配给会议室:</p>
|
||||
|
||||
<ol>
|
||||
<li>每场会议都会在未占用且编号 <strong>最小</strong> 的会议室举办。</li>
|
||||
<li>如果没有可用的会议室,会议将会延期,直到存在空闲的会议室。延期会议的持续时间和原会议持续时间 <strong>相同</strong> 。</li>
|
||||
<li>当会议室处于未占用状态时,将会优先提供给原 <strong>开始</strong> 时间更早的会议。</li>
|
||||
</ol>
|
||||
|
||||
<p>返回举办最多次会议的房间 <strong>编号</strong> 。如果存在多个房间满足此条件,则返回编号 <strong>最小</strong> 的房间。</p>
|
||||
|
||||
<p><strong>半闭区间 </strong><code>[a, b)</code> 是 <code>a</code> 和 <code>b</code> 之间的区间,<strong>包括</strong> <code>a</code> 但<strong> 不包括</strong> <code>b</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>n = 2, meetings = [[0,10],[1,5],[2,7],[3,4]]
|
||||
<strong>输出:</strong>0
|
||||
<strong>解释:</strong>
|
||||
- 在时间 0 ,两个会议室都未占用,第一场会议在会议室 0 举办。
|
||||
- 在时间 1 ,只有会议室 1 未占用,第二场会议在会议室 1 举办。
|
||||
- 在时间 2 ,两个会议室都被占用,第三场会议延期举办。
|
||||
- 在时间 3 ,两个会议室都被占用,第四场会议延期举办。
|
||||
- 在时间 5 ,会议室 1 的会议结束。第三场会议在会议室 1 举办,时间周期为 [5,10) 。
|
||||
- 在时间 10 ,两个会议室的会议都结束。第四场会议在会议室 0 举办,时间周期为 [10,11) 。
|
||||
会议室 0 和会议室 1 都举办了 2 场会议,所以返回 0 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>n = 3, meetings = [[1,20],[2,10],[3,5],[4,9],[6,8]]
|
||||
<strong>输出:</strong>1
|
||||
<strong>解释:</strong>
|
||||
- 在时间 1 ,所有三个会议室都未占用,第一场会议在会议室 0 举办。
|
||||
- 在时间 2 ,会议室 1 和 2 未占用,第二场会议在会议室 1 举办。
|
||||
- 在时间 3 ,只有会议室 2 未占用,第三场会议在会议室 2 举办。
|
||||
- 在时间 4 ,所有三个会议室都被占用,第四场会议延期举办。
|
||||
- 在时间 5 ,会议室 2 的会议结束。第四场会议在会议室 2 举办,时间周期为 [5,10) 。
|
||||
- 在时间 6 ,所有三个会议室都被占用,第五场会议延期举办。
|
||||
- 在时间 10 ,会议室 1 和 2 的会议结束。第五场会议在会议室 1 举办,时间周期为 [10,12) 。
|
||||
会议室 1 和会议室 2 都举办了 2 场会议,所以返回 1 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n <= 100</code></li>
|
||||
<li><code>1 <= meetings.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>meetings[i].length == 2</code></li>
|
||||
<li><code>0 <= start<sub>i</sub> < end<sub>i</sub> <= 5 * 10<sup>5</sup></code></li>
|
||||
<li><code>start<sub>i</sub></code> 的所有值 <strong>互不相同</strong></li>
|
||||
</ul>
|
@@ -0,0 +1,33 @@
|
||||
<p>给你两个 <strong>正</strong> 整数 <code>startPos</code> 和 <code>endPos</code> 。最初,你站在 <strong>无限</strong> 数轴上位置 <code>startPos</code> 处。在一步移动中,你可以向左或者向右移动一个位置。</p>
|
||||
|
||||
<p>给你一个正整数 <code>k</code> ,返回从 <code>startPos</code> 出发、<strong>恰好</strong> 移动 <code>k</code> 步并到达 <code>endPos</code> 的 <strong>不同</strong> 方法数目。由于答案可能会很大,返回对 <code>10<sup>9</sup> + 7</code> <strong>取余</strong> 的结果。</p>
|
||||
|
||||
<p>如果所执行移动的顺序不完全相同,则认为两种方法不同。</p>
|
||||
|
||||
<p><strong>注意:</strong>数轴包含负整数<strong>。</strong></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>startPos = 1, endPos = 2, k = 3
|
||||
<strong>输出:</strong>3
|
||||
<strong>解释:</strong>存在 3 种从 1 到 2 且恰好移动 3 步的方法:
|
||||
- 1 -> 2 -> 3 -> 2.
|
||||
- 1 -> 2 -> 1 -> 2.
|
||||
- 1 -> 0 -> 1 -> 2.
|
||||
可以证明不存在其他方法,所以返回 3 。</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>startPos = 2, endPos = 5, k = 10
|
||||
<strong>输出:</strong>0
|
||||
<strong>解释:</strong>不存在从 2 到 5 且恰好移动 10 步的方法。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= startPos, endPos, k <= 1000</code></li>
|
||||
</ul>
|
@@ -0,0 +1,37 @@
|
||||
<p>给你一个由 <strong>正</strong> 整数组成的数组 <code>nums</code> 。</p>
|
||||
|
||||
<p>如果 <code>nums</code> 的子数组中位于 <strong>不同</strong> 位置的每对元素按位 <strong>与(AND)</strong>运算的结果等于 <code>0</code> ,则称该子数组为 <strong>优雅</strong> 子数组。</p>
|
||||
|
||||
<p>返回 <strong>最长</strong> 的优雅子数组的长度。</p>
|
||||
|
||||
<p><strong>子数组</strong> 是数组中的一个 <strong>连续</strong> 部分。</p>
|
||||
|
||||
<p><strong>注意:</strong>长度为 <code>1</code> 的子数组始终视作优雅子数组。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>nums = [1,3,8,48,10]
|
||||
<strong>输出:</strong>3
|
||||
<strong>解释:</strong>最长的优雅子数组是 [3,8,48] 。子数组满足题目条件:
|
||||
- 3 AND 8 = 0
|
||||
- 3 AND 48 = 0
|
||||
- 8 AND 48 = 0
|
||||
可以证明不存在更长的优雅子数组,所以返回 3 。</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>nums = [3,1,5,11,13]
|
||||
<strong>输出:</strong>1
|
||||
<strong>解释:</strong>最长的优雅子数组长度为 1 ,任何长度为 1 的子数组都满足题目条件。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= nums[i] <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,42 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的字符串 <code>s</code> ,该字符串仅由小写英文字母组成,<code>s</code> 中的每个字母都 <strong>恰好</strong> 出现 <strong>两次</strong> 。另给你一个下标从 <strong>0</strong> 开始、长度为 <code>26</code> 的的整数数组 <code>distance</code> 。</p>
|
||||
|
||||
<p>字母表中的每个字母按从 <code>0</code> 到 <code>25</code> 依次编号(即,<code>'a' -> 0</code>, <code>'b' -> 1</code>, <code>'c' -> 2</code>, ... , <code>'z' -> 25</code>)。</p>
|
||||
|
||||
<p>在一个 <strong>匀整</strong> 字符串中,第 <code>i</code> 个字母的两次出现之间的字母数量是 <code>distance[i]</code> 。如果第 <code>i</code> 个字母没有在 <code>s</code> 中出现,那么 <code>distance[i]</code> 可以 <strong>忽略</strong> 。</p>
|
||||
|
||||
<p>如果 <code>s</code> 是一个 <strong>匀整</strong> 字符串,返回 <code>true</code> ;否则,返回 <code>false</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>s = "abaccb", distance = [1,3,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
|
||||
<strong>输出:</strong>true
|
||||
<strong>解释:</strong>
|
||||
- 'a' 在下标 0 和下标 2 处出现,所以满足 distance[0] = 1 。
|
||||
- 'b' 在下标 1 和下标 5 处出现,所以满足 distance[1] = 3 。
|
||||
- 'c' 在下标 3 和下标 4 处出现,所以满足 distance[2] = 0 。
|
||||
注意 distance[3] = 5 ,但是由于 'd' 没有在 s 中出现,可以忽略。
|
||||
因为 s 是一个匀整字符串,返回 true 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>s = "aa", distance = [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
|
||||
<strong>输出:</strong>false
|
||||
<strong>解释:</strong>
|
||||
- 'a' 在下标 0 和 1 处出现,所以两次出现之间的字母数量为 0 。
|
||||
但是 distance[0] = 1 ,s 不是一个匀整字符串。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= s.length <= 52</code></li>
|
||||
<li><code>s</code> 仅由小写英文字母组成</li>
|
||||
<li><code>s</code> 中的每个字母恰好出现两次</li>
|
||||
<li><code>distance.length == 26</code></li>
|
||||
<li><code>0 <= distance[i] <= 50</code></li>
|
||||
</ul>
|
Reference in New Issue
Block a user