mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-04 23:11:41 +08:00
update
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
<p>给你一个 <strong>二叉搜索树</strong> 的根节点 <code>root</code> ,和一个由正整数组成、长度为 <code>n</code> 的数组 <code>queries</code> 。</p>
|
||||
|
||||
<p>请你找出一个长度为 <code>n</code> 的 <strong>二维</strong> 答案数组 <code>answer</code> ,其中 <code>answer[i] = [min<sub>i</sub>, max<sub>i</sub>]</code> :</p>
|
||||
|
||||
<ul>
|
||||
<li><code>min<sub>i</sub></code> 是树中小于等于 <code>queries[i]</code> 的 <strong>最大值</strong> 。如果不存在这样的值,则使用 <code>-1</code> 代替。</li>
|
||||
<li><code>max<sub>i</sub></code> 是树中大于等于 <code>queries[i]</code> 的 <strong>最小值</strong> 。如果不存在这样的值,则使用 <code>-1</code> 代替。</li>
|
||||
</ul>
|
||||
|
||||
<p>返回数组 <code>answer</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1 :</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/09/28/bstreeedrawioo.png" style="width: 261px; height: 281px;" /></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>root = [6,2,13,1,4,9,15,null,null,null,null,null,null,14], queries = [2,5,16]
|
||||
<strong>输出:</strong>[[2,2],[4,6],[15,-1]]
|
||||
<strong>解释:</strong>按下面的描述找出并返回查询的答案:
|
||||
- 树中小于等于 2 的最大值是 2 ,且大于等于 2 的最小值也是 2 。所以第一个查询的答案是 [2,2] 。
|
||||
- 树中小于等于 5 的最大值是 4 ,且大于等于 5 的最小值是 6 。所以第二个查询的答案是 [4,6] 。
|
||||
- 树中小于等于 16 的最大值是 15 ,且大于等于 16 的最小值不存在。所以第三个查询的答案是 [15,-1] 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2 :</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/09/28/bstttreee.png" style="width: 101px; height: 121px;" /></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>root = [4,null,9], queries = [3]
|
||||
<strong>输出:</strong>[[-1,4]]
|
||||
<strong>解释:</strong>树中不存在小于等于 3 的最大值,且大于等于 3 的最小值是 4 。所以查询的答案是 [-1,4] 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>树中节点的数目在范围 <code>[2, 10<sup>5</sup>]</code> 内</li>
|
||||
<li><code>1 <= Node.val <= 10<sup>6</sup></code></li>
|
||||
<li><code>n == queries.length</code></li>
|
||||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= queries[i] <= 10<sup>6</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,64 @@
|
||||
<p>给你一棵 <code>n</code> 个节点的树(一个无向、连通、无环图),每个节点表示一个城市,编号从 <code>0</code> 到 <code>n - 1</code> ,且恰好有 <code>n - 1</code> 条路。<code>0</code> 是首都。给你一个二维整数数组 <code>roads</code> ,其中 <code>roads[i] = [a<sub>i</sub>, b<sub>i</sub>]</code> ,表示城市 <code>a<sub>i</sub></code> 和 <code>b<sub>i</sub></code> 之间有一条 <strong>双向路</strong> 。</p>
|
||||
|
||||
<p>每个城市里有一个代表,他们都要去首都参加一个会议。</p>
|
||||
|
||||
<p>每座城市里有一辆车。给你一个整数 <code>seats</code> 表示每辆车里面座位的数目。</p>
|
||||
|
||||
<p>城市里的代表可以选择乘坐所在城市的车,或者乘坐其他城市的车。相邻城市之间一辆车的油耗是一升汽油。</p>
|
||||
|
||||
<p>请你返回到达首都最少需要多少升汽油。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/09/22/a4c380025e3ff0c379525e96a7d63a3.png" style="width: 303px; height: 332px;"></p>
|
||||
|
||||
<pre><b>输入:</b>roads = [[0,1],[0,2],[0,3]], seats = 5
|
||||
<b>输出:</b>3
|
||||
<b>解释:</b>
|
||||
- 代表 1 直接到达首都,消耗 1 升汽油。
|
||||
- 代表 2 直接到达首都,消耗 1 升汽油。
|
||||
- 代表 3 直接到达首都,消耗 1 升汽油。
|
||||
最少消耗 3 升汽油。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/11/16/2.png" style="width: 274px; height: 340px;"></p>
|
||||
|
||||
<pre><b>输入:</b>roads = [[3,1],[3,2],[1,0],[0,4],[0,5],[4,6]], seats = 2
|
||||
<b>输出:</b>7
|
||||
<b>解释:</b>
|
||||
- 代表 2 到达城市 3 ,消耗 1 升汽油。
|
||||
- 代表 2 和代表 3 一起到达城市 1 ,消耗 1 升汽油。
|
||||
- 代表 2 和代表 3 一起到达首都,消耗 1 升汽油。
|
||||
- 代表 1 直接到达首都,消耗 1 升汽油。
|
||||
- 代表 5 直接到达首都,消耗 1 升汽油。
|
||||
- 代表 6 到达城市 4 ,消耗 1 升汽油。
|
||||
- 代表 4 和代表 6 一起到达首都,消耗 1 升汽油。
|
||||
最少消耗 7 升汽油。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/09/27/efcf7f7be6830b8763639cfd01b690a.png" style="width: 108px; height: 86px;"></p>
|
||||
|
||||
<pre><b>输入:</b>roads = [], seats = 1
|
||||
<b>输出:</b>0
|
||||
<b>解释:</b>没有代表需要从别的城市到达首都。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||||
<li><code>roads.length == n - 1</code></li>
|
||||
<li><code>roads[i].length == 2</code></li>
|
||||
<li><code>0 <= a<sub>i</sub>, b<sub>i</sub> < n</code></li>
|
||||
<li><code>a<sub>i</sub> != b<sub>i</sub></code></li>
|
||||
<li><code>roads</code> 表示一棵合法的树。</li>
|
||||
<li><code>1 <= seats <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,51 @@
|
||||
<p>给你一个字符串 <code>s</code> ,每个字符是数字 <code>'1'</code> 到 <code>'9'</code> ,再给你两个整数 <code>k</code> 和 <code>minLength</code> 。</p>
|
||||
|
||||
<p>如果对 <code>s</code> 的分割满足以下条件,那么我们认为它是一个 <strong>完美</strong> 分割:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>s</code> 被分成 <code>k</code> 段互不相交的子字符串。</li>
|
||||
<li>每个子字符串长度都 <strong>至少</strong> 为 <code>minLength</code> 。</li>
|
||||
<li>每个子字符串的第一个字符都是一个 <b>质数</b> 数字,最后一个字符都是一个 <strong>非质数</strong> 数字。质数数字为 <code>'2'</code> ,<code>'3'</code> ,<code>'5'</code> 和 <code>'7'</code> ,剩下的都是非质数数字。</li>
|
||||
</ul>
|
||||
|
||||
<p>请你返回 <code>s</code> 的 <strong>完美</strong> 分割数目。由于答案可能很大,请返回答案对 <code>10<sup>9</sup> + 7</code> <strong>取余</strong> 后的结果。</p>
|
||||
|
||||
<p>一个 <strong>子字符串</strong> 是字符串中一段连续字符串序列。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>s = "23542185131", k = 3, minLength = 2
|
||||
<b>输出:</b>3
|
||||
<b>解释:</b>存在 3 种完美分割方案:
|
||||
"2354 | 218 | 5131"
|
||||
"2354 | 21851 | 31"
|
||||
"2354218 | 51 | 31"
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>s = "23542185131", k = 3, minLength = 3
|
||||
<b>输出:</b>1
|
||||
<b>解释:</b>存在一种完美分割方案:"2354 | 218 | 5131" 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>s = "3312958", k = 3, minLength = 1
|
||||
<b>输出:</b>1
|
||||
<b>解释:</b>存在一种完美分割方案:"331 | 29 | 58" 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= k, minLength <= s.length <= 1000</code></li>
|
||||
<li><code>s</code> 每个字符都为数字 <code>'1'</code> 到 <code>'9'</code> 之一。</li>
|
||||
</ul>
|
@@ -0,0 +1,44 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的正整数数组 <code>nums</code> 。请你找出并统计满足下述条件的三元组 <code>(i, j, k)</code> 的数目:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>0 <= i < j < k < nums.length</code></li>
|
||||
<li><code>nums[i]</code>、<code>nums[j]</code> 和 <code>nums[k]</code> <strong>两两不同</strong> 。
|
||||
<ul>
|
||||
<li>换句话说:<code>nums[i] != nums[j]</code>、<code>nums[i] != nums[k]</code> 且 <code>nums[j] != nums[k]</code> 。</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>返回满足上述条件三元组的数目<em>。</em></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [4,4,2,4,3]
|
||||
<strong>输出:</strong>3
|
||||
<strong>解释:</strong>下面列出的三元组均满足题目条件:
|
||||
- (0, 2, 4) 因为 4 != 2 != 3
|
||||
- (1, 2, 4) 因为 4 != 2 != 3
|
||||
- (2, 3, 4) 因为 2 != 4 != 3
|
||||
共计 3 个三元组,返回 3 。
|
||||
注意 (2, 0, 4) 不是有效的三元组,因为 2 > 0 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [1,1,1,1,1]
|
||||
<strong>输出:</strong>0
|
||||
<strong>解释:</strong>不存在满足条件的三元组,所以返回 0 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>3 <= nums.length <= 100</code></li>
|
||||
<li><code>1 <= nums[i] <= 1000</code></li>
|
||||
</ul>
|
Reference in New Issue
Block a user