1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-09-04 23:11:41 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
This commit is contained in:
2022-11-24 20:11:13 +08:00
parent 8a37a26300
commit 23a743b5be
30 changed files with 15304 additions and 12420 deletions

View File

@@ -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> 是树中小于等于&nbsp;<code>queries[i]</code><strong>最大值</strong> 。如果不存在这样的值,则使用 <code>-1</code> 代替。</li>
<li><code>max<sub>i</sub></code> 是树中大于等于&nbsp;<code>queries[i]</code><strong>最小值</strong> 。如果不存在这样的值,则使用 <code>-1</code> 代替。</li>
</ul>
<p>返回数组 <code>answer</code></p>
<p>&nbsp;</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>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li>树中节点的数目在范围 <code>[2, 10<sup>5</sup>]</code></li>
<li><code>1 &lt;= Node.val &lt;= 10<sup>6</sup></code></li>
<li><code>n == queries.length</code></li>
<li><code>1 &lt;= n &lt;= 10<sup>5</sup></code></li>
<li><code>1 &lt;= queries[i] &lt;= 10<sup>6</sup></code></li>
</ul>

View File

@@ -0,0 +1,64 @@
<p>给你一棵 <code>n</code>&nbsp;个节点的树(一个无向、连通、无环图),每个节点表示一个城市,编号从&nbsp;<code>0</code>&nbsp;&nbsp;<code>n - 1</code>&nbsp;,且恰好有&nbsp;<code>n - 1</code>&nbsp;条路。<code>0</code>&nbsp;是首都。给你一个二维整数数组&nbsp;<code>roads</code>&nbsp;,其中&nbsp;<code>roads[i] = [a<sub>i</sub>, b<sub>i</sub>]</code>&nbsp;,表示城市&nbsp;<code>a<sub>i</sub></code>&nbsp;<code>b<sub>i</sub></code>&nbsp;之间有一条&nbsp;<strong>双向路</strong>&nbsp;</p>
<p>每个城市里有一个代表,他们都要去首都参加一个会议。</p>
<p>每座城市里有一辆车。给你一个整数&nbsp;<code>seats</code>&nbsp;表示每辆车里面座位的数目。</p>
<p>城市里的代表可以选择乘坐所在城市的车,或者乘坐其他城市的车。相邻城市之间一辆车的油耗是一升汽油。</p>
<p>请你返回到达首都最少需要多少升汽油。</p>
<p>&nbsp;</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>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= n &lt;= 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 &lt;= a<sub>i</sub>, b<sub>i</sub> &lt; n</code></li>
<li><code>a<sub>i</sub> != b<sub>i</sub></code></li>
<li><code>roads</code>&nbsp;表示一棵合法的树。</li>
<li><code>1 &lt;= seats &lt;= 10<sup>5</sup></code></li>
</ul>

View File

@@ -0,0 +1,51 @@
<p>给你一个字符串&nbsp;<code>s</code>&nbsp;,每个字符是数字&nbsp;<code>'1'</code>&nbsp;&nbsp;<code>'9'</code>&nbsp;,再给你两个整数&nbsp;<code>k</code>&nbsp;<code>minLength</code>&nbsp;</p>
<p>如果对 <code>s</code>&nbsp;的分割满足以下条件,那么我们认为它是一个 <strong>完美</strong>&nbsp;分割:</p>
<ul>
<li><code>s</code>&nbsp;被分成 <code>k</code>&nbsp;段互不相交的子字符串。</li>
<li>每个子字符串长度都 <strong>至少</strong>&nbsp;&nbsp;<code>minLength</code>&nbsp;</li>
<li>每个子字符串的第一个字符都是一个 <b>质数</b> 数字,最后一个字符都是一个 <strong>非质数</strong>&nbsp;数字。质数数字为&nbsp;<code>'2'</code>&nbsp;<code>'3'</code>&nbsp;<code>'5'</code>&nbsp;&nbsp;<code>'7'</code>&nbsp;,剩下的都是非质数数字。</li>
</ul>
<p>请你返回 <code>s</code>&nbsp;<strong>完美</strong>&nbsp;分割数目。由于答案可能很大,请返回答案对&nbsp;<code>10<sup>9</sup> + 7</code>&nbsp;<strong>取余</strong>&nbsp;后的结果。</p>
<p>一个 <strong>子字符串</strong>&nbsp;是字符串中一段连续字符串序列。</p>
<p>&nbsp;</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>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= k, minLength &lt;= s.length &lt;= 1000</code></li>
<li><code>s</code>&nbsp;每个字符都为数字&nbsp;<code>'1'</code>&nbsp;&nbsp;<code>'9'</code> 之一。</li>
</ul>

View File

@@ -0,0 +1,44 @@
<p>给你一个下标从 <strong>0</strong> 开始的正整数数组 <code>nums</code> 。请你找出并统计满足下述条件的三元组 <code>(i, j, k)</code> 的数目:</p>
<ul>
<li><code>0 &lt;= i &lt; j &lt; k &lt; 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>&nbsp;</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 &gt; 0 。
</pre>
<p><strong>示例 2</strong></p>
<pre>
<strong>输入:</strong>nums = [1,1,1,1,1]
<strong>输出:</strong>0
<strong>解释:</strong>不存在满足条件的三元组,所以返回 0 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>3 &lt;= nums.length &lt;= 100</code></li>
<li><code>1 &lt;= nums[i] &lt;= 1000</code></li>
</ul>