mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-10-19 03:56:46 +08:00
更新国内版力扣题目描述变更
This commit is contained in:
@@ -2,14 +2,14 @@
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong> nums = [0,1]
|
||||
<strong>输出:</strong> 2
|
||||
<strong>说明:</strong> [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong> nums = [0,1,0]
|
||||
|
@@ -1,17 +1,10 @@
|
||||
<p>给你一个链表,每 <em>k </em>个节点一组进行翻转,请你返回翻转后的链表。</p>
|
||||
<p>给你链表的头节点 <code>head</code> ,每 <code>k</code><em> </em>个节点一组进行翻转,请你返回修改后的链表。</p>
|
||||
|
||||
<p><em>k </em>是一个正整数,它的值小于或等于链表的长度。</p>
|
||||
<p><code>k</code> 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 <code>k</code><em> </em>的整数倍,那么请将最后剩余的节点保持原有顺序。</p>
|
||||
|
||||
<p>如果节点总数不是 <em>k </em>的整数倍,那么请将最后剩余的节点保持原有顺序。</p>
|
||||
<p>你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。</p>
|
||||
|
||||
<p><strong>进阶:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>你可以设计一个只使用常数额外空间的算法来解决此问题吗?</li>
|
||||
<li><strong>你不能只是单纯的改变节点内部的值</strong>,而是需要实际进行节点交换。</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2020/10/03/reverse_ex1.jpg" style="width: 542px; height: 222px;" />
|
||||
@@ -21,34 +14,26 @@
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2020/10/03/reverse_ex2.jpg" style="width: 542px; height: 222px;" />
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2020/10/03/reverse_ex2.jpg" style="width: 542px; height: 222px;" /></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>head = [1,2,3,4,5], k = 3
|
||||
<strong>输出:</strong>[3,2,1,4,5]
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
<p> </p>
|
||||
<strong>提示:</strong>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>head = [1,2,3,4,5], k = 1
|
||||
<strong>输出:</strong>[1,2,3,4,5]
|
||||
</pre>
|
||||
<ul>
|
||||
<li>链表中的节点数目为 <code>n</code></li>
|
||||
<li><code>1 <= k <= n <= 5000</code></li>
|
||||
<li><code>0 <= Node.val <= 1000</code></li>
|
||||
</ul>
|
||||
|
||||
<p><strong>示例 4:</strong></p>
|
||||
<p> </p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>head = [1], k = 1
|
||||
<strong>输出:</strong>[1]
|
||||
</pre>
|
||||
<p><strong>进阶:</strong>你可以设计一个只用 <code>O(1)</code> 额外内存空间的算法解决此问题吗?</p>
|
||||
|
||||
<ul>
|
||||
</ul>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>列表中节点的数量在范围 <code>sz</code> 内</li>
|
||||
<li><code>1 <= sz <= 5000</code></li>
|
||||
<li><code>0 <= Node.val <= 1000</code></li>
|
||||
<li><code>1 <= k <= sz</code></li>
|
||||
</ul>
|
||||
|
@@ -1,34 +1,34 @@
|
||||
小扣打算给自己的 **VS code** 安装使用插件,初始状态下带宽每分钟可以完成 `1` 个插件的下载。假定每分钟选择以下两种策略之一:
|
||||
- 使用当前带宽下载插件
|
||||
- 将带宽加倍(下载插件数量随之加倍)
|
||||
|
||||
请返回小扣完成下载 `n` 个插件最少需要多少分钟。
|
||||
|
||||
注意:实际的下载的插件数量可以超过 `n` 个
|
||||
|
||||
|
||||
**示例 1:**
|
||||
>输入:`n = 2`
|
||||
>
|
||||
>输出:`2`
|
||||
>
|
||||
>解释:
|
||||
> 以下两个方案,都能实现 2 分钟内下载 2 个插件
|
||||
>- 方案一:第一分钟带宽加倍,带宽可每分钟下载 2 个插件;第二分钟下载 2 个插件
|
||||
>- 方案二:第一分钟下载 1 个插件,第二分钟下载 1 个插件
|
||||
|
||||
**示例 2:**
|
||||
>输入:`n = 4`
|
||||
>
|
||||
>输出:`3`
|
||||
>
|
||||
>解释:
|
||||
> 最少需要 3 分钟可完成 4 个插件的下载,以下是其中一种方案:
|
||||
> 第一分钟带宽加倍,带宽可每分钟下载 2 个插件;
|
||||
> 第二分钟下载 2 个插件;
|
||||
> 第三分钟下载 2 个插件。
|
||||
|
||||
|
||||
|
||||
**提示:**
|
||||
- `1 <= n <= 10^5`
|
||||
小扣打算给自己的 **VS code** 安装使用插件,初始状态下带宽每分钟可以完成 `1` 个插件的下载。假定每分钟选择以下两种策略之一:
|
||||
|
||||
- 使用当前带宽下载插件
|
||||
|
||||
- 将带宽加倍(下载插件数量随之加倍)
|
||||
|
||||
|
||||
|
||||
请返回小扣完成下载 `n` 个插件最少需要多少分钟。
|
||||
|
||||
|
||||
|
||||
注意:实际的下载的插件数量可以超过 `n` 个
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
**示例 1:**
|
||||
|
||||
>输入:`n = 2`
|
||||
|
||||
>
|
||||
|
||||
>输出:`2`
|
||||
|
||||
>
|
||||
|
||||
>解释:
|
||||
|
||||
> 以下两个方案,都能实现 2 分钟内下载 2 个插件
|
||||
|
||||
>- 方案一:第一分钟带宽加倍,带宽可每分钟下载 2 个插件;第二分钟下载 2 个插件
|
||||
|
||||
|
@@ -1,34 +1,34 @@
|
||||
<p>给定一个数组 <code>prices</code> ,其中 <code>prices[i]</code> 表示股票第 <code>i</code> 天的价格。</p>
|
||||
<p>给你一个整数数组 <code>prices</code> ,其中 <code>prices[i]</code> 表示某支股票第 <code>i</code> 天的价格。</p>
|
||||
|
||||
<p>在每一天,你可能会决定购买和/或出售股票。你在任何时候 <strong>最多</strong> 只能持有 <strong>一股</strong> 股票。你也可以购买它,然后在 <strong>同一天</strong> 出售。<br />
|
||||
返回 <em>你能获得的 <strong>最大</strong> 利润</em> 。</p>
|
||||
<p>在每一天,你可以决定是否购买和/或出售股票。你在任何时候 <strong>最多</strong> 只能持有 <strong>一股</strong> 股票。你也可以先购买,然后在 <strong>同一天</strong> 出售。</p>
|
||||
|
||||
<p>返回 <em>你能获得的 <strong>最大</strong> 利润</em> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong> prices = [7,1,5,3,6,4]
|
||||
<strong>输出:</strong> 7
|
||||
<strong>解释:</strong> 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
|
||||
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
|
||||
</pre>
|
||||
<strong>输入:</strong>prices = [7,1,5,3,6,4]
|
||||
<strong>输出:</strong>7
|
||||
<strong>解释:</strong>在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。
|
||||
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3 。
|
||||
总利润为 4 + 3 = 7 。</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong> prices = [1,2,3,4,5]
|
||||
<strong>输出:</strong> 4
|
||||
<strong>解释:</strong> 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
|
||||
注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
|
||||
</pre>
|
||||
<strong>输入:</strong>prices = [1,2,3,4,5]
|
||||
<strong>输出:</strong>4
|
||||
<strong>解释:</strong>在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。
|
||||
总利润为 4 。</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong> prices = [7,6,4,3,1]
|
||||
<strong>输出:</strong> 0
|
||||
<strong>解释:</strong> 在这种情况下, 没有交易完成, 所以最大利润为 0。</pre>
|
||||
<strong>输入:</strong>prices = [7,6,4,3,1]
|
||||
<strong>输出:</strong>0
|
||||
<strong>解释:</strong>在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0 。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
|
@@ -1,18 +1,20 @@
|
||||
<p>给定两个大小相等的数组 <code>A</code> 和 <code>B</code>,A 相对于 B 的<em>优势</em>可以用满足 <code>A[i] > B[i]</code> 的索引 <code>i</code> 的数目来描述。</p>
|
||||
<p>给定两个大小相等的数组 <code>nums1</code> 和 <code>nums2</code>,<code>nums1</code> 相对于 <code>nums</code> 的<em>优势</em>可以用满足 <code>nums1[i] > nums2[i]</code> 的索引 <code>i</code> 的数目来描述。</p>
|
||||
|
||||
<p>返回 <code>A</code> 的<strong>任意</strong>排列,使其相对于 <code>B</code> 的优势最大化。</p>
|
||||
<p>返回 <font color="#c7254e" face="Menlo, Monaco, Consolas, Courier New, monospace" size="1"><span style="background-color: rgb(249, 242, 244);">nums1</span></font> 的<strong>任意</strong>排列,使其相对于 <code>nums2</code> 的优势最大化。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>A = [2,7,11,15], B = [1,10,4,11]
|
||||
<pre>
|
||||
<strong>输入:</strong>nums1 = [2,7,11,15], nums2 = [1,10,4,11]
|
||||
<strong>输出:</strong>[2,11,7,15]
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>A = [12,24,8,32], B = [13,25,32,11]
|
||||
<pre>
|
||||
<strong>输入:</strong>nums1 = [12,24,8,32], nums2 = [13,25,32,11]
|
||||
<strong>输出:</strong>[24,32,8,12]
|
||||
</pre>
|
||||
|
||||
@@ -20,8 +22,8 @@
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ol>
|
||||
<li><code>1 <= A.length = B.length <= 10000</code></li>
|
||||
<li><code>0 <= A[i] <= 10^9</code></li>
|
||||
<li><code>0 <= B[i] <= 10^9</code></li>
|
||||
</ol>
|
||||
<ul>
|
||||
<li><code>1 <= nums1.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>nums2.length == nums1.length</code></li>
|
||||
<li><code>0 <= nums1[i], nums2[i] <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
||||
|
@@ -13,14 +13,16 @@ id是该表的主键列。
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p>编写一个SQL查询来 <strong>删除</strong> 所有重复的电子邮件,只保留一个id最小的唯一电子邮件。</p>
|
||||
<p>编写一个 SQL <strong>删除语句</strong>来 <strong>删除</strong> 所有重复的电子邮件,只保留一个id最小的唯一电子邮件。</p>
|
||||
|
||||
<p>以 <strong>任意顺序</strong> 返回结果表。</p>
|
||||
<p>以 <strong>任意顺序</strong> 返回结果表。 (<strong>注意</strong>: 仅需要写删除语句,将自动对剩余结果进行查询)</p>
|
||||
|
||||
<p>查询结果格式如下所示。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
|
@@ -41,5 +41,5 @@ numArray.sumRange(0, 2); // 返回 1 + 2 + 5 = 8
|
||||
<li><code>0 <= index < nums.length</code></li>
|
||||
<li><code>-100 <= val <= 100</code></li>
|
||||
<li><code>0 <= left <= right < nums.length</code></li>
|
||||
<li>调用 <code>pdate</code> 和 <code>sumRange</code> 方法次数不大于 <code>3 * 10<sup>4</sup></code> </li>
|
||||
<li>调用 <code>update</code> 和 <code>sumRange</code> 方法次数不大于 <code>3 * 10<sup>4</sup></code> </li>
|
||||
</ul>
|
||||
|
@@ -1,8 +1,9 @@
|
||||
<p>有个内含单词的超大文本文件,给定任意两个单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗?</p>
|
||||
<p>有个内含单词的超大文本文件,给定任意两个<code>不同的</code>单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗?</p>
|
||||
|
||||
<p><strong>示例:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>words = ["I","am","a","student","from","a","university","in","a","city"], word1 = "a", word2 = "student"
|
||||
<pre>
|
||||
<strong>输入:</strong>words = ["I","am","a","student","from","a","university","in","a","city"], word1 = "a", word2 = "student"
|
||||
<strong>输出:</strong>1</pre>
|
||||
|
||||
<p>提示:</p>
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1 :</strong></p>
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [1,1,1], k = 2
|
||||
@@ -10,7 +10,7 @@
|
||||
<strong>解释:</strong> 此题 [1,1] 与 [1,1] 为两种不同的情况
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2 :</strong></p>
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [1,2,3], k = 3
|
||||
|
@@ -4,7 +4,7 @@
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入: </strong>s = "cbaebabacd", p = "abc"
|
||||
@@ -14,7 +14,7 @@
|
||||
起始索引等于 6 的子串是 "bac", 它是 "abc" 的变位词。
|
||||
</pre>
|
||||
|
||||
<p><strong> 示例 2:</strong></p>
|
||||
<p><strong> 示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入: </strong>s = "abab", p = "ab"
|
||||
|
@@ -1,27 +1,27 @@
|
||||
有 `N` 位扣友参加了微软与力扣举办了「以扣会友」线下活动。主办方提供了 `2*N` 道题目,整型数组 `questions` 中每个数字对应了每道题目所涉及的知识点类型。
|
||||
若每位扣友选择不同的一题,请返回被选的 `N` 道题目至少包含多少种知识点类型。
|
||||
|
||||
|
||||
**示例 1:**
|
||||
>输入:`questions = [2,1,6,2]`
|
||||
>
|
||||
>输出:`1`
|
||||
>
|
||||
>解释:有 2 位扣友在 4 道题目中选择 2 题。
|
||||
> 可选择完成知识点类型为 2 的题目时,此时仅一种知识点类型
|
||||
> 因此至少包含 1 种知识点类型。
|
||||
|
||||
**示例 2:**
|
||||
>输入:`questions = [1,5,1,3,4,5,2,5,3,3,8,6]`
|
||||
>
|
||||
>输出:`2`
|
||||
>
|
||||
>解释:有 6 位扣友在 12 道题目中选择题目,需要选择 6 题。
|
||||
> 选择完成知识点类型为 3、5 的题目,因此至少包含 2 种知识点类型。
|
||||
|
||||
|
||||
|
||||
**提示:**
|
||||
- `questions.length == 2*n`
|
||||
- `2 <= questions.length <= 10^5`
|
||||
有 `N` 位扣友参加了微软与力扣举办了「以扣会友」线下活动。主办方提供了 `2*N` 道题目,整型数组 `questions` 中每个数字对应了每道题目所涉及的知识点类型。
|
||||
|
||||
若每位扣友选择不同的一题,请返回被选的 `N` 道题目至少包含多少种知识点类型。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
**示例 1:**
|
||||
|
||||
>输入:`questions = [2,1,6,2]`
|
||||
|
||||
>
|
||||
|
||||
>输出:`1`
|
||||
|
||||
>
|
||||
|
||||
>解释:有 2 位扣友在 4 道题目中选择 2 题。
|
||||
|
||||
> 可选择完成知识点类型为 2 的题目时,此时仅一种知识点类型
|
||||
|
||||
> 因此至少包含 1 种知识点类型。
|
||||
|
||||
|
||||
|
||||
**示例 2:**
|
@@ -1,16 +1,16 @@
|
||||
<p>实现 <a href="https://baike.baidu.com/item/strstr/811469" target="_blank">strStr()</a> 函数。</p>
|
||||
<p>实现 <a href="https://baike.baidu.com/item/strstr/811469" target="_blank">strStr()</a> 函数。</p>
|
||||
|
||||
<p>给你两个字符串 <code>haystack</code> 和 <code>needle</code> ,请你在 <code>haystack</code> 字符串中找出 <code>needle</code> 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 <code>-1</code><strong> </strong>。</p>
|
||||
<p>给你两个字符串 <code>haystack</code> 和 <code>needle</code> ,请你在 <code>haystack</code> 字符串中找出 <code>needle</code> 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 <code>-1</code><strong> </strong>。</p>
|
||||
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
|
||||
<p><strong>说明:</strong></p>
|
||||
|
||||
<p>当 <code>needle</code> 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。</p>
|
||||
<p>当 <code>needle</code> 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。</p>
|
||||
|
||||
<p>对于本题而言,当 <code>needle</code> 是空字符串时我们应当返回 0 。这与 C 语言的 <a href="https://baike.baidu.com/item/strstr/811469" target="_blank">strstr()</a> 以及 Java 的 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf(java.lang.String)" target="_blank">indexOf()</a> 定义相符。</p>
|
||||
<p>对于本题而言,当 <code>needle</code> 是空字符串时我们应当返回 0 。这与 C 语言的 <a href="https://baike.baidu.com/item/strstr/811469" target="_blank">strstr()</a> 以及 Java 的 <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf(java.lang.String)" target="_blank">indexOf()</a> 定义相符。</p>
|
||||
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
@@ -33,11 +33,11 @@
|
||||
<strong>输出:</strong>0
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>0 <= haystack.length, needle.length <= 5 * 10<sup>4</sup></code></li>
|
||||
<li><code>1 <= haystack.length, needle.length <= 10<sup>4</sup></code></li>
|
||||
<li><code>haystack</code> 和 <code>needle</code> 仅由小写英文字符组成</li>
|
||||
</ul>
|
||||
|
@@ -1,29 +1,29 @@
|
||||
小扣参加的秋日市集景区共有 $N$ 个景点,景点编号为 $1$~$N$。景点内设有 $N-1$ 条双向道路,使所有景点形成了一个二叉树结构,根结点记为 `root`,景点编号即为节点值。
|
||||
|
||||
由于秋日市集景区的结构特殊,游客很容易迷路,主办方决定在景区的若干个景点设置导航装置,按照所在景点编号升序排列后定义装置编号为 1 ~ M。导航装置向游客发送数据,数据内容为列表 `[游客与装置 1 的相对距离,游客与装置 2 的相对距离,...,游客与装置 M 的相对距离]`。由于游客根据导航装置发送的信息来确认位置,因此主办方需保证游客在每个景点接收的数据信息皆不相同。请返回主办方最少需要设置多少个导航装置。
|
||||
|
||||
**示例 1:**
|
||||
>输入:`root = [1,2,null,3,4]`
|
||||
>
|
||||
>输出:`2`
|
||||
>
|
||||
>解释:在景点 1、3 或景点 1、4 或景点 3、4 设置导航装置。
|
||||
>
|
||||
>{:height="250px"}
|
||||
|
||||
|
||||
|
||||
**示例 2:**
|
||||
>输入:`root = [1,2,3,4]`
|
||||
>
|
||||
>输出:`1`
|
||||
>
|
||||
>解释:在景点 3、4 设置导航装置皆可。
|
||||
>
|
||||
>{:height="200px"}
|
||||
|
||||
|
||||
|
||||
**提示:**
|
||||
- `2 <= N <= 50000`
|
||||
- 二叉树的非空节点值为 `1~N` 的一个排列。
|
||||
小扣参加的秋日市集景区共有 $N$ 个景点,景点编号为 $1$~$N$。景点内设有 $N-1$ 条双向道路,使所有景点形成了一个二叉树结构,根结点记为 `root`,景点编号即为节点值。
|
||||
|
||||
|
||||
|
||||
由于秋日市集景区的结构特殊,游客很容易迷路,主办方决定在景区的若干个景点设置导航装置,按照所在景点编号升序排列后定义装置编号为 1 ~ M。导航装置向游客发送数据,数据内容为列表 `[游客与装置 1 的相对距离,游客与装置 2 的相对距离,...,游客与装置 M 的相对距离]`。由于游客根据导航装置发送的信息来确认位置,因此主办方需保证游客在每个景点接收的数据信息皆不相同。请返回主办方最少需要设置多少个导航装置。
|
||||
|
||||
|
||||
|
||||
**示例 1:**
|
||||
|
||||
>输入:`root = [1,2,null,3,4]`
|
||||
|
||||
>
|
||||
|
||||
>输出:`2`
|
||||
|
||||
>
|
||||
|
||||
>解释:在景点 1、3 或景点 1、4 或景点 3、4 设置导航装置。
|
||||
|
||||
>
|
||||
|
||||
>{:height="250px"}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
<p>如果一个由 <code>'0'</code> 和 <code>'1'</code> 组成的字符串,是以一些 <code>'0'</code>(可能没有 <code>'0'</code>)后面跟着一些 <code>'1'</code>(也可能没有 <code>'1'</code>)的形式组成的,那么该字符串是<em>单调递增</em>的。</p>
|
||||
<p>如果一个二进制字符串,是以一些 <code>0</code>(可能没有 <code>0</code>)后面跟着一些 <code>1</code>(也可能没有 <code>1</code>)的形式组成的,那么该字符串是 <strong>单调递增 </strong>的。</p>
|
||||
|
||||
<p>我们给出一个由字符 <code>'0'</code> 和 <code>'1'</code> 组成的字符串 <code>S</code>,我们可以将任何 <code>'0'</code> 翻转为 <code>'1'</code> 或者将 <code>'1'</code> 翻转为 <code>'0'</code>。</p>
|
||||
<p>给你一个二进制字符串 <code>s</code>,你可以将任何 <code>0</code> 翻转为 <code>1</code> 或者将 <code>1</code> 翻转为 <code>0</code> 。</p>
|
||||
|
||||
<p>返回使 <code>S</code> 单调递增的最小翻转次数。</p>
|
||||
<p>返回使 <code>s</code> 单调递增的最小翻转次数。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "00110"
|
||||
<strong>输出:</strong>1
|
||||
<strong>解释:</strong>我们翻转最后一位得到 00111.
|
||||
<strong>解释:</strong>翻转最后一位得到 00111.
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
@@ -19,7 +19,7 @@
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "010110"
|
||||
<strong>输出:</strong>2
|
||||
<strong>解释:</strong>我们翻转得到 011111,或者是 000111。
|
||||
<strong>解释:</strong>翻转得到 011111,或者是 000111。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
@@ -27,7 +27,7 @@
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "00011000"
|
||||
<strong>输出:</strong>2
|
||||
<strong>解释:</strong>我们翻转得到 00000000。
|
||||
<strong>解释:</strong>翻转得到 00000000。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
@@ -36,5 +36,5 @@
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= s.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>S</code> 中只包含字符 <code>'0'</code> 和 <code>'1'</code></li>
|
||||
<li><code>s[i]</code> 为 <code>'0'</code> 或 <code>'1'</code></li>
|
||||
</ul>
|
||||
|
@@ -1,39 +1,51 @@
|
||||
<p>给定一个由空格分割单词的句子 <code>S</code>。每个单词只包含大写或小写字母。</p>
|
||||
<p>给你一个由若干单词组成的句子 <code>sentence</code> ,单词间由空格分隔。每个单词仅由大写和小写英文字母组成。</p>
|
||||
|
||||
<p>我们要将句子转换为 <em>“Goat Latin”</em>(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。</p>
|
||||
|
||||
<p>山羊拉丁文的规则如下:</p>
|
||||
<p>请你将句子转换为 <em>“</em>山羊拉丁文(<em>Goat Latin</em>)<em>”</em>(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。山羊拉丁文的规则如下:</p>
|
||||
|
||||
<ul>
|
||||
<li>如果单词以元音开头(a, e, i, o, u),在单词后添加<code>"ma"</code>。<br />
|
||||
例如,单词<code>"apple"</code>变为<code>"applema"</code>。</li>
|
||||
<br />
|
||||
<li>如果单词以辅音字母开头(即非元音字母),移除第一个字符并将它放到末尾,之后再添加<code>"ma"</code>。<br />
|
||||
例如,单词<code>"goat"</code>变为<code>"oatgma"</code>。</li>
|
||||
<br />
|
||||
<li>根据单词在句子中的索引,在单词最后添加与索引相同数量的字母<code>'a'</code>,索引从1开始。<br />
|
||||
例如,在第一个单词后添加<code>"a"</code>,在第二个单词后添加<code>"aa"</code>,以此类推。</li>
|
||||
<li>如果单词以元音开头(<code>'a'</code>, <code>'e'</code>, <code>'i'</code>, <code>'o'</code>, <code>'u'</code>),在单词后添加<code>"ma"</code>。
|
||||
|
||||
<ul>
|
||||
<li>例如,单词 <code>"apple"</code> 变为 <code>"applema"</code> 。</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>如果单词以辅音字母开头(即,非元音字母),移除第一个字符并将它放到末尾,之后再添加<code>"ma"</code>。
|
||||
<ul>
|
||||
<li>例如,单词 <code>"goat"</code> 变为 <code>"oatgma"</code> 。</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>根据单词在句子中的索引,在单词最后添加与索引相同数量的字母<code>'a'</code>,索引从 <code>1</code> 开始。
|
||||
<ul>
|
||||
<li>例如,在第一个单词后添加 <code>"a"</code> ,在第二个单词后添加 <code>"aa"</code> ,以此类推。</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>返回将 <code>S</code> 转换为山羊拉丁文后的句子。</p>
|
||||
<p>返回将 <code>sentence</code> 转换为山羊拉丁文后的句子。</p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入: </strong>"I speak Goat Latin"
|
||||
<strong>输出: </strong>"Imaa peaksmaaa oatGmaaaa atinLmaaaaa"
|
||||
<strong>输入:</strong>sentence = "I speak Goat Latin"
|
||||
<strong>输出:</strong>"Imaa peaksmaaa oatGmaaaa atinLmaaaaa"
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入: </strong>"The quick brown fox jumped over the lazy dog"
|
||||
<strong>输出: </strong>"heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"
|
||||
<strong>输入:</strong>sentence = "The quick brown fox jumped over the lazy dog"
|
||||
<strong>输出:</strong>"heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"
|
||||
</pre>
|
||||
|
||||
<p><strong>说明:</strong></p>
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>S</code> 中仅包含大小写字母和空格。单词间有且仅有一个空格。</li>
|
||||
<li><code>1 <= S.length <= 150</code>。</li>
|
||||
<li><code>1 <= sentence.length <= 150</code></li>
|
||||
<li><code>sentence</code> 由英文字母和空格组成</li>
|
||||
<li><code>sentence</code> 不含前导或尾随空格</li>
|
||||
<li><code>sentence</code> 中的所有单词由单个空格分隔</li>
|
||||
</ul>
|
||||
|
@@ -1,44 +1,44 @@
|
||||
小扣打算去秋日市集,由于游客较多,小扣的移动速度受到了人流影响:
|
||||
- 小扣从 `x` 号站点移动至 `x + 1` 号站点需要花费的时间为 `inc`;
|
||||
- 小扣从 `x` 号站点移动至 `x - 1` 号站点需要花费的时间为 `dec`。
|
||||
|
||||
现有 `m` 辆公交车,编号为 `0` 到 `m-1`。小扣也可以通过搭乘编号为 `i` 的公交车,从 `x` 号站点移动至 `jump[i]*x` 号站点,耗时仅为 `cost[i]`。小扣可以搭乘任意编号的公交车且搭乘公交次数不限。
|
||||
|
||||
假定小扣起始站点记作 `0`,秋日市集站点记作 `target`,请返回小扣抵达秋日市集最少需要花费多少时间。由于数字较大,最终答案需要对 1000000007 (1e9 + 7) 取模。
|
||||
|
||||
注意:小扣可在移动过程中到达编号大于 `target` 的站点。
|
||||
|
||||
**示例 1:**
|
||||
>输入:`target = 31, inc = 5, dec = 3, jump = [6], cost = [10]`
|
||||
>
|
||||
>输出:`33`
|
||||
>
|
||||
>解释:
|
||||
>小扣步行至 1 号站点,花费时间为 5;
|
||||
>小扣从 1 号站台搭乘 0 号公交至 6 * 1 = 6 站台,花费时间为 10;
|
||||
>小扣从 6 号站台步行至 5 号站台,花费时间为 3;
|
||||
>小扣从 5 号站台搭乘 0 号公交至 6 * 5 = 30 站台,花费时间为 10;
|
||||
>小扣从 30 号站台步行至 31 号站台,花费时间为 5;
|
||||
>最终小扣花费总时间为 33。
|
||||
|
||||
|
||||
**示例 2:**
|
||||
>输入:`target = 612, inc = 4, dec = 5, jump = [3,6,8,11,5,10,4], cost = [4,7,6,3,7,6,4]`
|
||||
>
|
||||
>输出:`26`
|
||||
>
|
||||
>解释:
|
||||
>小扣步行至 1 号站点,花费时间为 4;
|
||||
>小扣从 1 号站台搭乘 0 号公交至 3 * 1 = 3 站台,花费时间为 4;
|
||||
>小扣从 3 号站台搭乘 3 号公交至 11 * 3 = 33 站台,花费时间为 3;
|
||||
>小扣从 33 号站台步行至 34 站台,花费时间为 4;
|
||||
>小扣从 34 号站台搭乘 0 号公交至 3 * 34 = 102 站台,花费时间为 4;
|
||||
>小扣从 102 号站台搭乘 1 号公交至 6 * 102 = 612 站台,花费时间为 7;
|
||||
>最终小扣花费总时间为 26。
|
||||
|
||||
|
||||
**提示:**
|
||||
- `1 <= target <= 10^9`
|
||||
- `1 <= jump.length, cost.length <= 10`
|
||||
- `2 <= jump[i] <= 10^6`
|
||||
小扣打算去秋日市集,由于游客较多,小扣的移动速度受到了人流影响:
|
||||
|
||||
- 小扣从 `x` 号站点移动至 `x + 1` 号站点需要花费的时间为 `inc`;
|
||||
|
||||
- 小扣从 `x` 号站点移动至 `x - 1` 号站点需要花费的时间为 `dec`。
|
||||
|
||||
|
||||
|
||||
现有 `m` 辆公交车,编号为 `0` 到 `m-1`。小扣也可以通过搭乘编号为 `i` 的公交车,从 `x` 号站点移动至 `jump[i]*x` 号站点,耗时仅为 `cost[i]`。小扣可以搭乘任意编号的公交车且搭乘公交次数不限。
|
||||
|
||||
|
||||
|
||||
假定小扣起始站点记作 `0`,秋日市集站点记作 `target`,请返回小扣抵达秋日市集最少需要花费多少时间。由于数字较大,最终答案需要对 1000000007 (1e9 + 7) 取模。
|
||||
|
||||
|
||||
|
||||
注意:小扣可在移动过程中到达编号大于 `target` 的站点。
|
||||
|
||||
|
||||
|
||||
**示例 1:**
|
||||
|
||||
>输入:`target = 31, inc = 5, dec = 3, jump = [6], cost = [10]`
|
||||
|
||||
>
|
||||
|
||||
>输出:`33`
|
||||
|
||||
>
|
||||
|
||||
>解释:
|
||||
|
||||
>小扣步行至 1 号站点,花费时间为 5;
|
||||
|
||||
>小扣从 1 号站台搭乘 0 号公交至 6 * 1 = 6 站台,花费时间为 10;
|
||||
|
||||
>小扣从 6 号站台步行至 5 号站台,花费时间为 3;
|
||||
|
||||
>小扣从 5 号站台搭乘 0 号公交至 6 * 5 = 30 站台,花费时间为 10;
|
||||
|
||||
>小扣从 30 号站台步行至 31 号站台,花费时间为 5;
|
||||
|
||||
>最终小扣花费总时间为 33。
|
||||
|
@@ -1,17 +1,17 @@
|
||||
<p>有 <code>n</code> 个气球,编号为<code>0</code> 到 <code>n - 1</code>,每个气球上都标有一个数字,这些数字存在数组 <code>nums</code> 中。</p>
|
||||
<p>有 <code>n</code> 个气球,编号为<code>0</code> 到 <code>n - 1</code>,每个气球上都标有一个数字,这些数字存在数组 <code>nums</code> 中。</p>
|
||||
|
||||
<p>现在要求你戳破所有的气球。戳破第 <code>i</code> 个气球,你可以获得 <code>nums[i - 1] * nums[i] * nums[i + 1]</code> 枚硬币。 这里的 <code>i - 1</code> 和 <code>i + 1</code> 代表和 <code>i</code> 相邻的两个气球的序号。如果 <code>i - 1</code>或 <code>i + 1</code> 超出了数组的边界,那么就当它是一个数字为 <code>1</code> 的气球。</p>
|
||||
<p>现在要求你戳破所有的气球。戳破第 <code>i</code> 个气球,你可以获得 <code>nums[i - 1] * nums[i] * nums[i + 1]</code> 枚硬币。 这里的 <code>i - 1</code> 和 <code>i + 1</code> 代表和 <code>i</code> 相邻的两个气球的序号。如果 <code>i - 1</code>或 <code>i + 1</code> 超出了数组的边界,那么就当它是一个数字为 <code>1</code> 的气球。</p>
|
||||
|
||||
<p>求所能获得硬币的最大数量。</p>
|
||||
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
<strong>示例 1:</strong>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [3,1,5,8]
|
||||
<strong>输出:</strong>167
|
||||
<strong>解释:</strong>
|
||||
nums = [3,1,5,8] --> [3,5,8] --> [3,8] --> [8] --> []
|
||||
nums = [3,1,5,8] --> [3,5,8] --> [3,8] --> [8] --> []
|
||||
coins = 3*1*5 + 3*5*8 + 1*3*8 + 1*8*1 = 167</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
@@ -21,12 +21,12 @@ coins = 3*1*5 + 3*5*8 + 1*3*8 + 1*8*1 = 167</pre>
|
||||
<strong>输出:</strong>10
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == nums.length</code></li>
|
||||
<li><code>1 <= n <= 500</code></li>
|
||||
<li><code>0 <= nums[i] <= 100</code></li>
|
||||
<li><code>1 <= n <= 300</code></li>
|
||||
<li><code>0 <= nums[i] <= 100</code></li>
|
||||
</ul>
|
||||
|
@@ -31,8 +31,8 @@ solution.shuffle(); // 随机返回数组 [1, 2, 3] 打乱后的结果。例
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 200</code></li>
|
||||
<li><code>1 <= nums.length <= 50</code></li>
|
||||
<li><code>-10<sup>6</sup> <= nums[i] <= 10<sup>6</sup></code></li>
|
||||
<li><code>nums</code> 中的所有元素都是 <strong>唯一的</strong></li>
|
||||
<li>最多可以调用 <code>5 * 10<sup>4</sup></code> 次 <code>reset</code> 和 <code>shuffle</code></li>
|
||||
<li>最多可以调用 <code>10<sup>4</sup></code> 次 <code>reset</code> 和 <code>shuffle</code></li>
|
||||
</ul>
|
||||
|
@@ -1,17 +1,17 @@
|
||||
<p>你有 <code>k</code> 个服务器,编号为 <code>0</code> 到 <code>k-1</code> ,它们可以同时处理多个请求组。每个服务器有无穷的计算能力但是 <strong>不能同时处理超过一个请求</strong> 。请求分配到服务器的规则如下:</p>
|
||||
<p>你有 <code>k</code> 个服务器,编号为 <code>0</code> 到 <code>k-1</code> ,它们可以同时处理多个请求组。每个服务器有无穷的计算能力但是 <strong>不能同时处理超过一个请求</strong> 。请求分配到服务器的规则如下:</p>
|
||||
|
||||
<ul>
|
||||
<li>第 <code>i</code> (序号从 0 开始)个请求到达。</li>
|
||||
<li>第 <code>i</code> (序号从 0 开始)个请求到达。</li>
|
||||
<li>如果所有服务器都已被占据,那么该请求被舍弃(完全不处理)。</li>
|
||||
<li>如果第 <code>(i % k)</code> 个服务器空闲,那么对应服务器会处理该请求。</li>
|
||||
<li>否则,将请求安排给下一个空闲的服务器(服务器构成一个环,必要的话可能从第 0 个服务器开始继续找下一个空闲的服务器)。比方说,如果第 <code>i</code> 个服务器在忙,那么会查看第 <code>(i+1)</code> 个服务器,第 <code>(i+2)</code> 个服务器等等。</li>
|
||||
<li>如果第 <code>(i % k)</code> 个服务器空闲,那么对应服务器会处理该请求。</li>
|
||||
<li>否则,将请求安排给下一个空闲的服务器(服务器构成一个环,必要的话可能从第 0 个服务器开始继续找下一个空闲的服务器)。比方说,如果第 <code>i</code> 个服务器在忙,那么会查看第 <code>(i+1)</code> 个服务器,第 <code>(i+2)</code> 个服务器等等。</li>
|
||||
</ul>
|
||||
|
||||
<p>给你一个 <strong>严格递增</strong> 的正整数数组 <code>arrival</code> ,表示第 <code>i</code> 个任务的到达时间,和另一个数组 <code>load</code> ,其中 <code>load[i]</code> 表示第 <code>i</code> 个请求的工作量(也就是服务器完成它所需要的时间)。你的任务是找到 <strong>最繁忙的服务器</strong> 。最繁忙定义为一个服务器处理的请求数是所有服务器里最多的。</p>
|
||||
<p>给你一个 <strong>严格递增</strong> 的正整数数组 <code>arrival</code> ,表示第 <code>i</code> 个任务的到达时间,和另一个数组 <code>load</code> ,其中 <code>load[i]</code> 表示第 <code>i</code> 个请求的工作量(也就是服务器完成它所需要的时间)。你的任务是找到 <strong>最繁忙的服务器</strong> 。最繁忙定义为一个服务器处理的请求数是所有服务器里最多的。</p>
|
||||
|
||||
<p>请你返回包含所有 <strong>最繁忙服务器</strong> 序号的列表,你可以以任意顺序返回这个列表。</p>
|
||||
<p>请你返回包含所有 <strong>最繁忙服务器</strong> 序号的列表,你可以以任意顺序返回这个列表。</p>
|
||||
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<strong>解释:</strong>
|
||||
所有服务器一开始都是空闲的。
|
||||
前 3 个请求分别由前 3 台服务器依次处理。
|
||||
请求 3 进来的时候,服务器 0 被占据,所以它呗安排到下一台空闲的服务器,也就是服务器 1 。
|
||||
请求 3 进来的时候,服务器 0 被占据,所以它被安排到下一台空闲的服务器,也就是服务器 1 。
|
||||
请求 4 进来的时候,由于所有服务器都被占据,该请求被舍弃。
|
||||
服务器 0 和 2 分别都处理了一个请求,服务器 1 处理了两个请求。所以服务器 1 是最忙的服务器。
|
||||
</pre>
|
||||
@@ -61,14 +61,14 @@
|
||||
<strong>输出:</strong>[0]
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= k <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= arrival.length, load.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= k <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= arrival.length, load.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>arrival.length == load.length</code></li>
|
||||
<li><code>1 <= arrival[i], load[i] <= 10<sup>9</sup></code></li>
|
||||
<li><code>arrival</code> 保证 <strong>严格递增</strong> 。</li>
|
||||
<li><code>1 <= arrival[i], load[i] <= 10<sup>9</sup></code></li>
|
||||
<li><code>arrival</code> 保证 <strong>严格递增</strong> 。</li>
|
||||
</ul>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<p>有一个有 <code>n</code> 个节点的有向图,节点按 <code>0</code> 到 <code>n - 1</code> 编号。图由一个 <strong>索引从 0 开始</strong> 的 2D 整数数组 <code>graph</code>表示, <code>graph[i]</code>是与节点 <code>i</code> 相邻的节点的整数数组,这意味着从节点 <code>i</code> 到 <code>graph[i]</code>中的每个节点都有一条边。</p>
|
||||
|
||||
<p>如果一个节点没有连出的有向边,则它是 <strong>终端节点</strong> 。如果没有出边,则节点为终端节点。如果从该节点开始的所有可能路径都通向一个 <strong>终端节点</strong> ,则该节点为 <strong>安全节点</strong> 。</p>
|
||||
<p>如果一个节点没有连出的有向边,则它是 <strong>终端节点</strong> 。如果没有出边,则节点为终端节点。如果从该节点开始的所有可能路径都通向 <strong>终端节点</strong> ,则该节点为 <strong>安全节点</strong> 。</p>
|
||||
|
||||
<p>返回一个由图中所有 <strong>安全节点</strong> 组成的数组作为答案。答案数组中的元素应当按 <strong>升序</strong> 排列。</p>
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
<strong>输入:</strong>graph = [[1,2],[2,3],[5],[0],[5],[],[]]
|
||||
<strong>输出:</strong>[2,4,5,6]
|
||||
<strong>解释:</strong>示意图如上。
|
||||
节点5和节点6是终端节点,因为它们都没有出边。
|
||||
从节点2、4、5和6开始的所有路径都指向节点5或6。
|
||||
节点 5 和节点 6 是终端节点,因为它们都没有出边。
|
||||
从节点 2、4、5 和 6 开始的所有路径都指向节点 5 或 6 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
@@ -24,7 +24,7 @@
|
||||
<strong>输入:</strong>graph = [[1,2,3,4],[1,2],[3,4],[0,4],[]]
|
||||
<strong>输出:</strong>[4]
|
||||
<strong>解释:</strong>
|
||||
只有节点4是终端节点,从节点4开始的所有路径都通向节点4。
|
||||
只有节点 4 是终端节点,从节点 4 开始的所有路径都通向节点 4 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
@@ -35,6 +35,7 @@
|
||||
<li><code>n == graph.length</code></li>
|
||||
<li><code>1 <= n <= 10<sup>4</sup></code></li>
|
||||
<li><code>0 <= graph[i].length <= n</code></li>
|
||||
<li><code>0 <= graph[i][j] <= n - 1</code></li>
|
||||
<li><code>graph[i]</code> 按严格递增顺序排列。</li>
|
||||
<li>图中可能包含自环。</li>
|
||||
<li>图中边的数目在范围 <code>[1, 4 * 10<sup>4</sup>]</code> 内。</li>
|
||||
|
@@ -1,21 +1,29 @@
|
||||
<p>给定一个非负整数数组 <code>A</code>,返回一个数组,在该数组中, <code>A</code> 的所有偶数元素之后跟着所有奇数元素。</p>
|
||||
<p>给你一个整数数组 <code>nums</code>,将 <code>nums</code> 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。</p>
|
||||
|
||||
<p>你可以返回满足此条件的任何数组作为答案。</p>
|
||||
<p>返回满足此条件的 <strong>任一数组</strong> 作为答案。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例:</strong></p>
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>[3,1,2,4]
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [3,1,2,4]
|
||||
<strong>输出:</strong>[2,4,3,1]
|
||||
输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。
|
||||
<strong>解释:</strong>[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [0]
|
||||
<strong>输出:</strong>[0]
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ol>
|
||||
<li><code>1 <= A.length <= 5000</code></li>
|
||||
<li><code>0 <= A[i] <= 5000</code></li>
|
||||
</ol>
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 5000</code></li>
|
||||
<li><code>0 <= nums[i] <= 5000</code></li>
|
||||
</ul>
|
||||
|
@@ -1,37 +1,37 @@
|
||||
小扣在秋日市集选择了一家早餐摊位,一维整型数组 `staple` 中记录了每种主食的价格,一维整型数组 `drinks` 中记录了每种饮料的价格。小扣的计划选择一份主食和一款饮料,且花费不超过 `x` 元。请返回小扣共有多少种购买方案。
|
||||
|
||||
注意:答案需要以 `1e9 + 7 (1000000007)` 为底取模,如:计算初始结果为:`1000000008`,请返回 `1`
|
||||
|
||||
**示例 1:**
|
||||
>输入:`staple = [10,20,5], drinks = [5,5,2], x = 15`
|
||||
>
|
||||
>输出:`6`
|
||||
>
|
||||
>解释:小扣有 6 种购买方案,所选主食与所选饮料在数组中对应的下标分别是:
|
||||
>第 1 种方案:staple[0] + drinks[0] = 10 + 5 = 15;
|
||||
>第 2 种方案:staple[0] + drinks[1] = 10 + 5 = 15;
|
||||
>第 3 种方案:staple[0] + drinks[2] = 10 + 2 = 12;
|
||||
>第 4 种方案:staple[2] + drinks[0] = 5 + 5 = 10;
|
||||
>第 5 种方案:staple[2] + drinks[1] = 5 + 5 = 10;
|
||||
>第 6 种方案:staple[2] + drinks[2] = 5 + 2 = 7。
|
||||
|
||||
**示例 2:**
|
||||
>输入:`staple = [2,1,1], drinks = [8,9,5,1], x = 9`
|
||||
>
|
||||
>输出:`8`
|
||||
>
|
||||
>解释:小扣有 8 种购买方案,所选主食与所选饮料在数组中对应的下标分别是:
|
||||
>第 1 种方案:staple[0] + drinks[2] = 2 + 5 = 7;
|
||||
>第 2 种方案:staple[0] + drinks[3] = 2 + 1 = 3;
|
||||
>第 3 种方案:staple[1] + drinks[0] = 1 + 8 = 9;
|
||||
>第 4 种方案:staple[1] + drinks[2] = 1 + 5 = 6;
|
||||
>第 5 种方案:staple[1] + drinks[3] = 1 + 1 = 2;
|
||||
>第 6 种方案:staple[2] + drinks[0] = 1 + 8 = 9;
|
||||
>第 7 种方案:staple[2] + drinks[2] = 1 + 5 = 6;
|
||||
>第 8 种方案:staple[2] + drinks[3] = 1 + 1 = 2;
|
||||
|
||||
**提示:**
|
||||
+ `1 <= staple.length <= 10^5`
|
||||
+ `1 <= drinks.length <= 10^5`
|
||||
+ `1 <= staple[i],drinks[i] <= 10^5`
|
||||
小扣在秋日市集选择了一家早餐摊位,一维整型数组 `staple` 中记录了每种主食的价格,一维整型数组 `drinks` 中记录了每种饮料的价格。小扣的计划选择一份主食和一款饮料,且花费不超过 `x` 元。请返回小扣共有多少种购买方案。
|
||||
|
||||
|
||||
|
||||
注意:答案需要以 `1e9 + 7 (1000000007)` 为底取模,如:计算初始结果为:`1000000008`,请返回 `1`
|
||||
|
||||
|
||||
|
||||
**示例 1:**
|
||||
|
||||
>输入:`staple = [10,20,5], drinks = [5,5,2], x = 15`
|
||||
|
||||
>
|
||||
|
||||
>输出:`6`
|
||||
|
||||
>
|
||||
|
||||
>解释:小扣有 6 种购买方案,所选主食与所选饮料在数组中对应的下标分别是:
|
||||
|
||||
>第 1 种方案:staple[0] + drinks[0] = 10 + 5 = 15;
|
||||
|
||||
>第 2 种方案:staple[0] + drinks[1] = 10 + 5 = 15;
|
||||
|
||||
>第 3 种方案:staple[0] + drinks[2] = 10 + 2 = 12;
|
||||
|
||||
>第 4 种方案:staple[2] + drinks[0] = 5 + 5 = 10;
|
||||
|
||||
>第 5 种方案:staple[2] + drinks[1] = 5 + 5 = 10;
|
||||
|
||||
>第 6 种方案:staple[2] + drinks[2] = 5 + 2 = 7。
|
||||
|
||||
|
||||
|
||||
**示例 2:**
|
||||
|
||||
>输入:`staple = [2,1,1], drinks = [8,9,5,1], x = 9`
|
@@ -1,10 +1,10 @@
|
||||
<p>给你一个整数数组 <code>nums</code>,和一个整数 <code>k</code> 。</p>
|
||||
|
||||
<p>在一个操作中,您可以选择 <code>0 <= i < nums</code> 的任何索引 <code>i</code> 。将 <code>nums[i]</code> 改为 <code>nums[i] + x</code> ,其中 <code>x</code> 是一个范围为 <code>[-k, k]</code> 的整数。对于每个索引 <code>i</code> ,最多 <strong>只能 </strong>应用 <strong>一次</strong> 此操作。</p>
|
||||
<p>在一个操作中,您可以选择 <code>0 <= i < nums.length</code> 的任何索引 <code>i</code> 。将 <code>nums[i]</code> 改为 <code>nums[i] + x</code> ,其中 <code>x</code> 是一个范围为 <code>[-k, k]</code> 的整数。对于每个索引 <code>i</code> ,最多 <strong>只能 </strong>应用 <strong>一次</strong> 此操作。</p>
|
||||
|
||||
<p><code>nums</code> 的 <strong>分数 </strong>是 <code>nums</code> 中最大和最小元素的差值。 </p>
|
||||
|
||||
<p><em>在对nums中的每个索引最多应用一次上述操作后,返回 <code>nums</code> 的最低 <strong>分数</strong></em> 。</p>
|
||||
<p><em>在对 <code>nums</code> 中的每个索引最多应用一次上述操作后,返回 <code>nums</code> 的最低 <strong>分数</strong></em> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
|
@@ -1,36 +1,33 @@
|
||||
<p>你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。</p>
|
||||
<p>给你二叉树的根节点 <code>root</code> ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。</p>
|
||||
|
||||
<p>空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。</p>
|
||||
<p>空节点使用一对空括号对 <code>"()"</code> 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。</p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
<div class="original__bRMd">
|
||||
<div>
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2021/05/03/cons1-tree.jpg" style="width: 292px; height: 301px;" />
|
||||
<pre>
|
||||
<strong>输入:</strong> 二叉树: [1,2,3,4]
|
||||
1
|
||||
/ \
|
||||
2 3
|
||||
/
|
||||
4
|
||||
|
||||
<strong>输出:</strong> "1(2(4))(3)"
|
||||
|
||||
<strong>解释:</strong> 原本将是“1(2(4)())(3())”,
|
||||
在你省略所有不必要的空括号对之后,
|
||||
它将是“1(2(4))(3)”。
|
||||
<strong>输入:</strong>root = [1,2,3,4]
|
||||
<strong>输出:</strong>"1(2(4))(3)"
|
||||
<strong>解释:</strong>初步转化后得到 "1(2(4)())(3()())" ,但省略所有不必要的空括号对后,字符串应该是"1(2(4))(3)" 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2021/05/03/cons2-tree.jpg" style="width: 207px; height: 293px;" />
|
||||
<pre>
|
||||
<strong>输入:</strong> 二叉树: [1,2,3,null,4]
|
||||
1
|
||||
/ \
|
||||
2 3
|
||||
\
|
||||
4
|
||||
<strong>输入:</strong>root = [1,2,3,null,4]
|
||||
<strong>输出:</strong>"1(2()(4))(3)"
|
||||
<strong>解释:</strong>和第一个示例类似,但是无法省略第一个空括号对,否则会破坏输入与输出一一映射的关系。</pre>
|
||||
|
||||
<strong>输出:</strong> "1(2()(4))(3)"
|
||||
<p> </p>
|
||||
|
||||
<strong>解释:</strong> 和第一个示例相似,
|
||||
除了我们不能省略第一个对括号来中断输入和输出之间的一对一映射关系。
|
||||
</pre>
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>树中节点的数目范围是 <code>[1, 10<sup>4</sup>]</code></li>
|
||||
<li><code>-1000 <= Node.val <= 1000</code></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,10 +1,10 @@
|
||||
<p>珂珂喜欢吃香蕉。这里有 <code>N</code> 堆香蕉,第 <code>i</code> 堆中有 <code>piles[i]</code> 根香蕉。警卫已经离开了,将在 <code>H</code> 小时后回来。</p>
|
||||
<p>珂珂喜欢吃香蕉。这里有 <code>n</code> 堆香蕉,第 <code>i</code> 堆中有 <code>piles[i]</code> 根香蕉。警卫已经离开了,将在 <code>h</code> 小时后回来。</p>
|
||||
|
||||
<p>珂珂可以决定她吃香蕉的速度 <code>K</code> (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 <code>K</code> 根。如果这堆香蕉少于 <code>K</code> 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。 </p>
|
||||
<p>珂珂可以决定她吃香蕉的速度 <code>k</code> (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 <code>k</code> 根。如果这堆香蕉少于 <code>k</code> 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。 </p>
|
||||
|
||||
<p>珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。</p>
|
||||
|
||||
<p>返回她可以在 <code>H</code> 小时内吃掉所有香蕉的最小速度 <code>K</code>(<code>K</code> 为整数)。</p>
|
||||
<p>返回她可以在 <code>h</code> 小时内吃掉所有香蕉的最小速度 <code>k</code>(<code>k</code> 为整数)。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
@@ -13,20 +13,23 @@
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入: </strong>piles = [3,6,7,11], H = 8
|
||||
<strong>输出: </strong>4
|
||||
<pre>
|
||||
<strong>输入:</strong>piles = [3,6,7,11], h = 8
|
||||
<strong>输出:</strong>4
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入: </strong>piles = [30,11,23,4,20], H = 5
|
||||
<strong>输出: </strong>30
|
||||
<pre>
|
||||
<strong>输入:</strong>piles = [30,11,23,4,20], h = 5
|
||||
<strong>输出:</strong>30
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre><strong>输入: </strong>piles = [30,11,23,4,20], H = 6
|
||||
<strong>输出: </strong>23
|
||||
<pre>
|
||||
<strong>输入:</strong>piles = [30,11,23,4,20], h = 6
|
||||
<strong>输出:</strong>23
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
@@ -34,7 +37,7 @@
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= piles.length <= 10^4</code></li>
|
||||
<li><code>piles.length <= H <= 10^9</code></li>
|
||||
<li><code>1 <= piles[i] <= 10^9</code></li>
|
||||
<li><code>1 <= piles.length <= 10<sup>4</sup></code></li>
|
||||
<li><code>piles.length <= h <= 10<sup>9</sup></code></li>
|
||||
<li><code>1 <= piles[i] <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
||||
|
@@ -1,10 +1,10 @@
|
||||
<p>狒狒喜欢吃香蕉。这里有 <code>N</code> 堆香蕉,第 <code>i</code> 堆中有 <code>piles[i]</code> 根香蕉。警卫已经离开了,将在 <code>H</code> 小时后回来。</p>
|
||||
<p>狒狒喜欢吃香蕉。这里有 <code>n</code> 堆香蕉,第 <code>i</code> 堆中有 <code>piles[i]</code> 根香蕉。警卫已经离开了,将在 <code>h</code> 小时后回来。</p>
|
||||
|
||||
<p>狒狒可以决定她吃香蕉的速度 <code>K</code> (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 <code>K</code> 根。如果这堆香蕉少于 <code>K</code> 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉,下一个小时才会开始吃另一堆的香蕉。 </p>
|
||||
<p>狒狒可以决定她吃香蕉的速度 <code>k</code> (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 <code>k</code> 根。如果这堆香蕉少于 <code>k</code> 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉,下一个小时才会开始吃另一堆的香蕉。 </p>
|
||||
|
||||
<p>狒狒喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。</p>
|
||||
|
||||
<p>返回她可以在 <code>H</code> 小时内吃掉所有香蕉的最小速度 <code>K</code>(<code>K</code> 为整数)。</p>
|
||||
<p>返回她可以在 <code>h</code> 小时内吃掉所有香蕉的最小速度 <code>k</code>(<code>k</code> 为整数)。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
@@ -14,22 +14,22 @@
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入: </strong>piles = [3,6,7,11], H = 8
|
||||
<strong>输出: </strong>4
|
||||
<strong>输入:</strong>piles = [3,6,7,11], h = 8
|
||||
<strong>输出:</strong>4
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入: </strong>piles = [30,11,23,4,20], H = 5
|
||||
<strong>输出: </strong>30
|
||||
<strong>输入:</strong>piles = [30,11,23,4,20], h = 5
|
||||
<strong>输出:</strong>30
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入: </strong>piles = [30,11,23,4,20], H = 6
|
||||
<strong>输出: </strong>23
|
||||
<strong>输入:</strong>piles = [30,11,23,4,20], h = 6
|
||||
<strong>输出:</strong>23
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
@@ -37,11 +37,11 @@
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= piles.length <= 10^4</code></li>
|
||||
<li><code>piles.length <= H <= 10^9</code></li>
|
||||
<li><code>1 <= piles[i] <= 10^9</code></li>
|
||||
<li><code>1 <= piles.length <= 10<sup>4</sup></code></li>
|
||||
<li><code>piles.length <= h <= 10<sup>9</sup></code></li>
|
||||
<li><code>1 <= piles[i] <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><meta charset="UTF-8" />注意:本题与主站 875 题相同: <a href="https://leetcode-cn.com/problems/koko-eating-bananas/">https://leetcode-cn.com/problems/koko-eating-bananas/</a></p>
|
||||
<p><meta charset="UTF-8" /><strong>注意:</strong>本题与主站 875 题相同: <a href="https://leetcode-cn.com/problems/koko-eating-bananas/">https://leetcode-cn.com/problems/koko-eating-bananas/</a></p>
|
||||
|
@@ -1,20 +1,20 @@
|
||||
小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 `leaves`, 字符串 `leaves` 仅包含小写字符 `r` 和 `y`, 其中字符 `r` 表示一片红叶,字符 `y` 表示一片黄叶。
|
||||
出于美观整齐的考虑,小扣想要将收藏集中树叶的排列调整成「红、黄、红」三部分。每部分树叶数量可以不相等,但均需大于等于 1。每次调整操作,小扣可以将一片红叶替换成黄叶或者将一片黄叶替换成红叶。请问小扣最少需要多少次调整操作才能将秋叶收藏集调整完毕。
|
||||
|
||||
**示例 1:**
|
||||
>输入:`leaves = "rrryyyrryyyrr"`
|
||||
>
|
||||
>输出:`2`
|
||||
>
|
||||
>解释:调整两次,将中间的两片红叶替换成黄叶,得到 "rrryyyyyyyyrr"
|
||||
|
||||
**示例 2:**
|
||||
>输入:`leaves = "ryr"`
|
||||
>
|
||||
>输出:`0`
|
||||
>
|
||||
>解释:已符合要求,不需要额外操作
|
||||
|
||||
**提示:**
|
||||
- `3 <= leaves.length <= 10^5`
|
||||
小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 `leaves`, 字符串 `leaves` 仅包含小写字符 `r` 和 `y`, 其中字符 `r` 表示一片红叶,字符 `y` 表示一片黄叶。
|
||||
|
||||
出于美观整齐的考虑,小扣想要将收藏集中树叶的排列调整成「红、黄、红」三部分。每部分树叶数量可以不相等,但均需大于等于 1。每次调整操作,小扣可以将一片红叶替换成黄叶或者将一片黄叶替换成红叶。请问小扣最少需要多少次调整操作才能将秋叶收藏集调整完毕。
|
||||
|
||||
|
||||
|
||||
**示例 1:**
|
||||
|
||||
>输入:`leaves = "rrryyyrryyyrr"`
|
||||
|
||||
>
|
||||
|
||||
>输出:`2`
|
||||
|
||||
>
|
||||
|
||||
>解释:调整两次,将中间的两片红叶替换成黄叶,得到 "rrryyyyyyyyrr"
|
||||
|
||||
|
||||
|
@@ -1,39 +1,39 @@
|
||||
秋游中的小力和小扣设计了一个追逐游戏。他们选了秋日市集景区中的 N 个景点,景点编号为 1~N。此外,他们还选择了 N 条小路,满足任意两个景点之间都可以通过小路互相到达,且不存在两条连接景点相同的小路。整个游戏场景可视作一个无向连通图,记作二维数组 `edges`,数组中以 `[a,b]` 形式表示景点 a 与景点 b 之间有一条小路连通。
|
||||
|
||||
小力和小扣只能沿景点间的小路移动。小力的目标是在最快时间内追到小扣,小扣的目标是尽可能延后被小力追到的时间。游戏开始前,两人分别站在两个不同的景点 `startA` 和 `startB`。每一回合,小力先行动,小扣观察到小力的行动后再行动。小力和小扣在每回合可选择以下行动之一:
|
||||
- 移动至相邻景点
|
||||
- 留在原地
|
||||
|
||||
如果小力追到小扣(即两人于某一时刻出现在同一位置),则游戏结束。若小力可以追到小扣,请返回最少需要多少回合;若小力无法追到小扣,请返回 -1。
|
||||
|
||||
注意:小力和小扣一定会采取最优移动策略。
|
||||
|
||||
**示例 1:**
|
||||
>输入:`edges = [[1,2],[2,3],[3,4],[4,1],[2,5],[5,6]], startA = 3, startB = 5`
|
||||
>
|
||||
>输出:`3`
|
||||
>
|
||||
>解释:
|
||||
>{:height="250px"}
|
||||
>
|
||||
>第一回合,小力移动至 2 号点,小扣观察到小力的行动后移动至 6 号点;
|
||||
>第二回合,小力移动至 5 号点,小扣无法移动,留在原地;
|
||||
>第三回合,小力移动至 6 号点,小力追到小扣。返回 3。
|
||||
|
||||
|
||||
**示例 2:**
|
||||
>输入:`edges = [[1,2],[2,3],[3,4],[4,1]], startA = 1, startB = 3`
|
||||
>
|
||||
>输出:`-1`
|
||||
>
|
||||
>解释:
|
||||
>{:height="250px"}
|
||||
>
|
||||
>小力如果不动,则小扣也不动;否则小扣移动到小力的对角线位置。这样小力无法追到小扣。
|
||||
|
||||
**提示:**
|
||||
- `edges` 的长度等于图中节点个数
|
||||
- `3 <= edges.length <= 10^5`
|
||||
- `1 <= edges[i][0], edges[i][1] <= edges.length 且 edges[i][0] != edges[i][1]`
|
||||
- `1 <= startA, startB <= edges.length 且 startA != startB`
|
||||
|
||||
秋游中的小力和小扣设计了一个追逐游戏。他们选了秋日市集景区中的 N 个景点,景点编号为 1~N。此外,他们还选择了 N 条小路,满足任意两个景点之间都可以通过小路互相到达,且不存在两条连接景点相同的小路。整个游戏场景可视作一个无向连通图,记作二维数组 `edges`,数组中以 `[a,b]` 形式表示景点 a 与景点 b 之间有一条小路连通。
|
||||
|
||||
|
||||
|
||||
小力和小扣只能沿景点间的小路移动。小力的目标是在最快时间内追到小扣,小扣的目标是尽可能延后被小力追到的时间。游戏开始前,两人分别站在两个不同的景点 `startA` 和 `startB`。每一回合,小力先行动,小扣观察到小力的行动后再行动。小力和小扣在每回合可选择以下行动之一:
|
||||
|
||||
- 移动至相邻景点
|
||||
|
||||
- 留在原地
|
||||
|
||||
|
||||
|
||||
如果小力追到小扣(即两人于某一时刻出现在同一位置),则游戏结束。若小力可以追到小扣,请返回最少需要多少回合;若小力无法追到小扣,请返回 -1。
|
||||
|
||||
|
||||
|
||||
注意:小力和小扣一定会采取最优移动策略。
|
||||
|
||||
|
||||
|
||||
**示例 1:**
|
||||
|
||||
>输入:`edges = [[1,2],[2,3],[3,4],[4,1],[2,5],[5,6]], startA = 3, startB = 5`
|
||||
|
||||
>
|
||||
|
||||
>输出:`3`
|
||||
|
||||
>
|
||||
|
||||
>解释:
|
||||
|
||||
>{:height="250px"}
|
||||
|
||||
>
|
||||
|
||||
>第一回合,小力移动至 2 号点,小扣观察到小力的行动后移动至 6 号点;
|
||||
|
||||
>第二回合,小力移动至 5 号点,小扣无法移动,留在原地;
|
||||
|
@@ -1,21 +1,21 @@
|
||||
小扣在秋日市集发现了一款速算机器人。店家对机器人说出两个数字(记作 `x` 和 `y`),请小扣说出计算指令:
|
||||
- `"A"` 运算:使 `x = 2 * x + y`;
|
||||
- `"B"` 运算:使 `y = 2 * y + x`。
|
||||
|
||||
在本次游戏中,店家说出的数字为 `x = 1` 和 `y = 0`,小扣说出的计算指令记作仅由大写字母 `A`、`B` 组成的字符串 `s`,字符串中字符的顺序表示计算顺序,请返回最终 `x` 与 `y` 的和为多少。
|
||||
|
||||
**示例 1:**
|
||||
>输入:`s = "AB"`
|
||||
>
|
||||
>输出:`4`
|
||||
>
|
||||
>解释:
|
||||
>经过一次 A 运算后,x = 2, y = 0。
|
||||
>再经过一次 B 运算,x = 2, y = 2。
|
||||
>最终 x 与 y 之和为 4。
|
||||
|
||||
**提示:**
|
||||
- `0 <= s.length <= 10`
|
||||
- `s` 由 `'A'` 和 `'B'` 组成
|
||||
|
||||
|
||||
小扣在秋日市集发现了一款速算机器人。店家对机器人说出两个数字(记作 `x` 和 `y`),请小扣说出计算指令:
|
||||
|
||||
- `"A"` 运算:使 `x = 2 * x + y`;
|
||||
|
||||
- `"B"` 运算:使 `y = 2 * y + x`。
|
||||
|
||||
|
||||
|
||||
在本次游戏中,店家说出的数字为 `x = 1` 和 `y = 0`,小扣说出的计算指令记作仅由大写字母 `A`、`B` 组成的字符串 `s`,字符串中字符的顺序表示计算顺序,请返回最终 `x` 与 `y` 的和为多少。
|
||||
|
||||
|
||||
|
||||
**示例 1:**
|
||||
|
||||
>输入:`s = "AB"`
|
||||
|
||||
>
|
||||
|
||||
>输出:`4`
|
||||
|
||||
>
|
||||
|
@@ -10,8 +10,8 @@
|
||||
| commission_rate | int |
|
||||
| hire_date | date |
|
||||
+-----------------+---------+
|
||||
Sales_id是该表的主键列。
|
||||
该表的每一行都显示了销售人员的姓名和ID,以及他们的工资、佣金率和雇佣日期。
|
||||
sales_id 是该表的主键列。
|
||||
该表的每一行都显示了销售人员的姓名和 ID ,以及他们的工资、佣金率和雇佣日期。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
@@ -26,8 +26,8 @@ Sales_id是该表的主键列。
|
||||
| name | varchar |
|
||||
| city | varchar |
|
||||
+-------------+---------+
|
||||
Com_id是该表的主键列。
|
||||
该表的每一行都表示公司的名称和ID,以及公司所在的城市。
|
||||
com_id 是该表的主键列。
|
||||
该表的每一行都表示公司的名称和 ID ,以及公司所在的城市。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
@@ -44,10 +44,10 @@ Com_id是该表的主键列。
|
||||
| sales_id | int |
|
||||
| amount | int |
|
||||
+-------------+------+
|
||||
Order_id是该表的主键列。
|
||||
com_id是Company表中com_id的外键。
|
||||
sales_id是来自销售员表com_id的外键。
|
||||
该表的每一行包含一个订单的信息。这包括公司的ID、销售人员的ID、订单日期和支付的金额。
|
||||
order_id 是该表的主键列。
|
||||
com_id 是 Company 表中 com_id 的外键。
|
||||
sales_id 是来自销售员表 sales_id 的外键。
|
||||
该表的每一行包含一个订单的信息。这包括公司的 ID 、销售人员的 ID 、订单日期和支付的金额。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
@@ -60,10 +60,10 @@ sales_id是来自销售员表com_id的外键。
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
<p><strong>示例:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>
|
||||
<strong>输入:</strong>
|
||||
SalesPerson 表:
|
||||
+----------+------+--------+-----------------+------------+
|
||||
| sales_id | name | salary | commission_rate | hire_date |
|
||||
@@ -92,7 +92,7 @@ Orders 表:
|
||||
| 3 | 3/1/2014 | 1 | 1 | 50000 |
|
||||
| 4 | 4/1/2014 | 1 | 4 | 25000 |
|
||||
+----------+------------+--------+----------+--------+
|
||||
<strong>输出:</strong>
|
||||
<strong>输出:</strong>
|
||||
+------+
|
||||
| name |
|
||||
+------+
|
||||
@@ -100,6 +100,6 @@ Orders 表:
|
||||
| Mark |
|
||||
| Alex |
|
||||
+------+
|
||||
<strong>解释:</strong>
|
||||
<strong>解释:</strong>
|
||||
根据表 <code>orders</code> 中的订单 '3' 和 '4' ,容易看出只有 'John' 和 'Pam' 两个销售员曾经向公司 'RED' 销售过。
|
||||
所以我们需要输出表 <code>salesperson</code> 中所有其他人的名字。</pre>
|
||||
|
Reference in New Issue
Block a user