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,41 @@
|
||||
<p>给你两个下标从 <strong>0</strong> 开始的字符串 <code>word1</code> 和 <code>word2</code> 。</p>
|
||||
|
||||
<p>一次 <strong>移动</strong> 由以下两个步骤组成:</p>
|
||||
|
||||
<ul>
|
||||
<li>选中两个下标 <code>i</code> 和 <code>j</code> ,分别满足 <code>0 <= i < word1.length</code> 和 <code>0 <= j < word2.length</code> ,</li>
|
||||
<li>交换 <code>word1[i]</code> 和 <code>word2[j]</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p>如果可以通过 <strong>恰好一次</strong> 移动,使 <code>word1</code> 和 <code>word2</code> 中不同字符的数目相等,则返回 <code>true</code> ;否则,返回 <code>false</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>word1 = "ac", word2 = "b"
|
||||
<strong>输出:</strong>false
|
||||
<strong>解释:</strong>交换任何一组下标都会导致第一个字符串中有 2 个不同的字符,而在第二个字符串中只有 1 个不同字符。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>word1 = "abcc", word2 = "aab"
|
||||
<strong>输出:</strong>true
|
||||
<strong>解释:</strong>交换第一个字符串的下标 2 和第二个字符串的下标 0 。之后得到 word1 = "abac" 和 word2 = "cab" ,各有 3 个不同字符。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>word1 = "abcde", word2 = "fghij"
|
||||
<strong>输出:</strong>true
|
||||
<strong>解释:</strong>无论交换哪一组下标,两个字符串中都会有 5 个不同字符。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= word1.length, word2.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>word1</code> 和 <code>word2</code> 仅由小写英文字母组成。</li>
|
||||
</ul>
|
@@ -0,0 +1,44 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>nums</code> 和一个整数 <code>k</code> 。你的 <strong>起始分数</strong> 为 <code>0</code> 。</p>
|
||||
|
||||
<p>在一步 <strong>操作</strong> 中:</p>
|
||||
|
||||
<ol>
|
||||
<li>选出一个满足 <code>0 <= i < nums.length</code> 的下标 <code>i</code> ,</li>
|
||||
<li>将你的 <strong>分数</strong> 增加 <code>nums[i]</code> ,并且</li>
|
||||
<li>将 <code>nums[i]</code> 替换为 <code>ceil(nums[i] / 3)</code> 。</li>
|
||||
</ol>
|
||||
|
||||
<p>返回在 <strong>恰好</strong> 执行 <code>k</code> 次操作后,你可能获得的最大分数。</p>
|
||||
|
||||
<p>向上取整函数 <code>ceil(val)</code> 的结果是大于或等于 <code>val</code> 的最小整数。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [10,10,10,10,10], k = 5
|
||||
<strong>输出:</strong>50
|
||||
<strong>解释:</strong>对数组中每个元素执行一次操作。最后分数是 10 + 10 + 10 + 10 + 10 = 50 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [1,10,3,3,3], k = 3
|
||||
<strong>输出:</strong>17
|
||||
<strong>解释:</strong>可以执行下述操作:
|
||||
第 1 步操作:选中 i = 1 ,nums 变为 [1,<em><strong>4</strong></em>,3,3,3] 。分数增加 10 。
|
||||
第 2 步操作:选中 i = 1 ,nums 变为 [1,<em><strong>2</strong></em>,3,3,3] 。分数增加 4 。
|
||||
第 3 步操作:选中 i = 2 ,nums 变为 [1,1,<em><strong>1</strong></em>,3,3] 。分数增加 3 。
|
||||
最后分数是 10 + 4 + 3 = 17 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length, k <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= nums[i] <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,39 @@
|
||||
<p>给你一个整数数据流,请你实现一个数据结构,检查数据流中最后 <code>k</code> 个整数是否 <strong>等于</strong> 给定值 <code>value</code> 。</p>
|
||||
|
||||
<p>请你实现 <strong>DataStream</strong> 类:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>DataStream(int value, int k)</code> 用两个整数 <code>value</code> 和 <code>k</code> 初始化一个空的整数数据流。</li>
|
||||
<li><code>boolean consec(int num)</code> 将 <code>num</code> 添加到整数数据流。如果后 <code>k</code> 个整数都等于 <code>value</code> ,返回 <code>true</code> ,否则返回 <code>false</code> 。如果少于 <code>k</code> 个整数,条件不满足,所以也返回 <code>false</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>
|
||||
["DataStream", "consec", "consec", "consec", "consec"]
|
||||
[[4, 3], [4], [4], [4], [3]]
|
||||
<strong>输出:</strong>
|
||||
[null, false, false, true, false]
|
||||
|
||||
<strong>解释:</strong>
|
||||
DataStream dataStream = new DataStream(4, 3); // value = 4, k = 3
|
||||
dataStream.consec(4); // 数据流中只有 1 个整数,所以返回 False 。
|
||||
dataStream.consec(4); // 数据流中只有 2 个整数
|
||||
// 由于 2 小于 k ,返回 False 。
|
||||
dataStream.consec(4); // 数据流最后 3 个整数都等于 value, 所以返回 True 。
|
||||
dataStream.consec(3); // 最后 k 个整数分别是 [4,4,3] 。
|
||||
// 由于 3 不等于 value ,返回 False 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= value, num <= 10<sup>9</sup></code></li>
|
||||
<li><code>1 <= k <= 10<sup>5</sup></code></li>
|
||||
<li>至多调用 <code>consec</code> 次数为 <code>10<sup>5</sup></code> 次。</li>
|
||||
</ul>
|
@@ -0,0 +1,55 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始长度为 <code>n</code> 的整数数组 <code>stations</code> ,其中 <code>stations[i]</code> 表示第 <code>i</code> 座城市的供电站数目。</p>
|
||||
|
||||
<p>每个供电站可以在一定 <strong>范围</strong> 内给所有城市提供电力。换句话说,如果给定的范围是 <code>r</code> ,在城市 <code>i</code> 处的供电站可以给所有满足 <code>|i - j| <= r</code> 且 <code>0 <= i, j <= n - 1</code> 的城市 <code>j</code> 供电。</p>
|
||||
|
||||
<ul>
|
||||
<li><code>|x|</code> 表示 <code>x</code> 的 <strong>绝对值</strong> 。比方说,<code>|7 - 5| = 2</code> ,<code>|3 - 10| = 7</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p>一座城市的 <strong>电量</strong> 是所有能给它供电的供电站数目。</p>
|
||||
|
||||
<p>政府批准了可以额外建造 <code>k</code> 座供电站,你需要决定这些供电站分别应该建在哪里,这些供电站与已经存在的供电站有相同的供电范围。</p>
|
||||
|
||||
<p>给你两个整数 <code>r</code> 和 <code>k</code> ,如果以最优策略建造额外的发电站,返回所有城市中,最小供电站数目的最大值是多少。</p>
|
||||
|
||||
<p>这 <code>k</code> 座供电站可以建在多个城市。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>stations = [1,2,4,5,0], r = 1, k = 2
|
||||
<b>输出:</b>5
|
||||
<b>解释:</b>
|
||||
最优方案之一是把 2 座供电站都建在城市 1 。
|
||||
每座城市的供电站数目分别为 [1,4,4,5,0] 。
|
||||
- 城市 0 的供电站数目为 1 + 4 = 5 。
|
||||
- 城市 1 的供电站数目为 1 + 4 + 4 = 9 。
|
||||
- 城市 2 的供电站数目为 4 + 4 + 5 = 13 。
|
||||
- 城市 3 的供电站数目为 5 + 4 = 9 。
|
||||
- 城市 4 的供电站数目为 5 + 0 = 5 。
|
||||
供电站数目最少是 5 。
|
||||
无法得到更优解,所以我们返回 5 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>stations = [4,4,4,4], r = 0, k = 3
|
||||
<b>输出:</b>4
|
||||
<b>解释:</b>
|
||||
无论如何安排,总有一座城市的供电站数目是 4 ,所以最优解是 4 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == stations.length</code></li>
|
||||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= stations[i] <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= r <= n - 1</code></li>
|
||||
<li><code>0 <= k <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,50 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>nums</code> 。</p>
|
||||
|
||||
<p>三个下标 <code>i</code> ,<code>j</code> 和 <code>k</code> 的 <strong>有效值</strong> 定义为 <code>((nums[i] | nums[j]) & nums[k])</code> 。</p>
|
||||
|
||||
<p>一个数组的 <strong>xor 美丽值</strong> 是数组中所有满足 <code>0 <= i, j, k < n</code> <strong>的三元组</strong> <code>(i, j, k)</code> 的 <strong>有效值</strong> 的异或结果。</p>
|
||||
|
||||
<p>请你返回 <code>nums</code> 的 xor 美丽值。</p>
|
||||
|
||||
<p><b>注意:</b></p>
|
||||
|
||||
<ul>
|
||||
<li><code>val1 | val2</code> 是 <code>val1</code> 和 <code>val2</code> 的按位或。</li>
|
||||
<li><code>val1 & val2</code> 是 <code>val1</code> 和 <code>val2</code> 的按位与。</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [1,4]
|
||||
<b>输出:</b>5
|
||||
<b>解释:</b>
|
||||
三元组和它们对应的有效值如下:
|
||||
- (0,0,0) 有效值为 ((1 | 1) & 1) = 1
|
||||
- (0,0,1) 有效值为 ((1 | 1) & 4) = 0
|
||||
- (0,1,0) 有效值为 ((1 | 4) & 1) = 1
|
||||
- (0,1,1) 有效值为 ((1 | 4) & 4) = 4
|
||||
- (1,0,0) 有效值为 ((4 | 1) & 1) = 1
|
||||
- (1,0,1) 有效值为 ((4 | 1) & 4) = 4
|
||||
- (1,1,0) 有效值为 ((4 | 4) & 1) = 0
|
||||
- (1,1,1) 有效值为 ((4 | 4) & 4) = 4
|
||||
数组的 xor 美丽值为所有有效值的按位异或 1 ^ 0 ^ 1 ^ 4 ^ 1 ^ 4 ^ 0 ^ 4 = 5 。</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [15,45,20,2,34,35,5,44,32,30]
|
||||
<b>输出:</b>34
|
||||
<code><span style=""><b>解释:</b>数组的 xor 美丽值为</span> 34 。</code>
|
||||
</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,51 @@
|
||||
<p>给你四个整数 <code>length</code> ,<code>width</code> ,<code>height</code> 和 <code>mass</code> ,分别表示一个箱子的三个维度和质量,请你返回一个表示箱子 <strong>类别</strong> 的字符串。</p>
|
||||
|
||||
<ul>
|
||||
<li>如果满足以下条件,那么箱子是 <code>"Bulky"</code> 的:
|
||||
|
||||
<ul>
|
||||
<li>箱子 <strong>至少有一个</strong> 维度大于等于 <code>10<sup>4</sup></code> 。</li>
|
||||
<li>或者箱子的 <strong>体积</strong> 大于等于 <code>10<sup>9</sup></code> 。</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>如果箱子的质量大于等于 <code>100</code> ,那么箱子是 <code>"Heavy"</code> 的。</li>
|
||||
<li>如果箱子同时是 <code>"Bulky"</code> 和 <code>"Heavy"</code> ,那么返回类别为 <code>"Both"</code> 。</li>
|
||||
<li>如果箱子既不是 <code>"Bulky"</code> ,也不是 <code>"Heavy"</code> ,那么返回类别为 <code>"Neither"</code> 。</li>
|
||||
<li>如果箱子是 <code>"Bulky"</code> 但不是 <code>"Heavy"</code> ,那么返回类别为 <code>"Bulky"</code> 。</li>
|
||||
<li>如果箱子是 <code>"Heavy"</code> 但不是 <code>"Bulky"</code> ,那么返回类别为 <code>"Heavy"</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p><strong>注意</strong>,箱子的体积等于箱子的长度、宽度和高度的乘积。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>length = 1000, width = 35, height = 700, mass = 300
|
||||
<b>输出:</b>"Heavy"
|
||||
<b>解释:</b>
|
||||
箱子没有任何维度大于等于 10<sup>4 </sup>。
|
||||
体积为 24500000 <= 10<sup>9 </sup>。所以不能归类为 "Bulky" 。
|
||||
但是质量 >= 100 ,所以箱子是 "Heavy" 的。
|
||||
由于箱子不是 "Bulky" 但是是 "Heavy" ,所以我们返回 "Heavy" 。</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>length = 200, width = 50, height = 800, mass = 50
|
||||
<b>输出:</b>"Neither"
|
||||
<b>解释:</b>
|
||||
箱子没有任何维度大于等于 10<sup>4</sup> 。
|
||||
体积为 8 * 10<sup>6</sup> <= 10<sup>9</sup> 。所以不能归类为 "Bulky" 。
|
||||
质量小于 100 ,所以不能归类为 "Heavy" 。
|
||||
由于不属于上述两者任何一类,所以我们返回 "Neither" 。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= length, width, height <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= mass <= 10<sup>3</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,47 @@
|
||||
<p>给你一个按 <strong>非递减顺序</strong> 排列的数组 <code>nums</code> ,返回正整数数目和负整数数目中的最大值。</p>
|
||||
|
||||
<ul>
|
||||
<li>换句话讲,如果 <code>nums</code> 中正整数的数目是 <code>pos</code> ,而负整数的数目是 <code>neg</code> ,返回 <code>pos</code> 和 <code>neg</code>二者中的最大值。</li>
|
||||
</ul>
|
||||
|
||||
<p><strong>注意:</strong><code>0</code> 既不是正整数也不是负整数。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [-2,-1,-1,1,2,3]
|
||||
<strong>输出:</strong>3
|
||||
<strong>解释:</strong>共有 3 个正整数和 3 个负整数。计数得到的最大值是 3 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [-3,-2,-1,0,0,1,2]
|
||||
<strong>输出:</strong>3
|
||||
<strong>解释:</strong>共有 2 个正整数和 3 个负整数。计数得到的最大值是 3 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>nums = [5,20,66,1314]
|
||||
<strong>输出:</strong>4
|
||||
<strong>解释:</strong>共有 4 个正整数和 0 个负整数。计数得到的最大值是 4 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 2000</code></li>
|
||||
<li><code>-2000 <= nums[i] <= 2000</code></li>
|
||||
<li><code>nums</code> 按 <strong>非递减顺序</strong> 排列。</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>进阶:</strong>你可以设计并实现时间复杂度为 <code>O(log(n))</code> 的算法解决此问题吗?</p>
|
@@ -0,0 +1,74 @@
|
||||
<p>共有 <code>k</code> 位工人计划将 <code>n</code> 个箱子从旧仓库移动到新仓库。给你两个整数 <code>n</code> 和 <code>k</code>,以及一个二维整数数组 <code>time</code> ,数组的大小为 <code>k x 4</code> ,其中 <code>time[i] = [leftToRight<sub>i</sub>, pickOld<sub>i</sub>, rightToLeft<sub>i</sub>, putNew<sub>i</sub>]</code> 。</p>
|
||||
|
||||
<p>一条河将两座仓库分隔,只能通过一座桥通行。旧仓库位于河的右岸,新仓库在河的左岸。开始时,所有 <code>k</code> 位工人都在桥的左侧等待。为了移动这些箱子,第 <code>i</code> 位工人(下标从 <strong>0</strong> 开始)可以:</p>
|
||||
|
||||
<ul>
|
||||
<li>从左岸(新仓库)跨过桥到右岸(旧仓库),用时 <code>leftToRight<sub>i</sub></code> 分钟。</li>
|
||||
<li>从旧仓库选择一个箱子,并返回到桥边,用时 <code>pickOld<sub>i</sub></code> 分钟。不同工人可以同时搬起所选的箱子。</li>
|
||||
<li>从右岸(旧仓库)跨过桥到左岸(新仓库),用时 <code>rightToLeft<sub>i</sub></code> 分钟。</li>
|
||||
<li>将箱子放入新仓库,并返回到桥边,用时 <code>putNew<sub>i</sub></code> 分钟。不同工人可以同时放下所选的箱子。</li>
|
||||
</ul>
|
||||
|
||||
<p>如果满足下面任一条件,则认为工人 <code>i</code> 的 <strong>效率低于</strong> 工人 <code>j</code> :</p>
|
||||
|
||||
<ul>
|
||||
<li><code>leftToRight<sub>i</sub> + rightToLeft<sub>i</sub> > leftToRight<sub>j</sub> + rightToLeft<sub>j</sub></code></li>
|
||||
<li><code>leftToRight<sub>i</sub> + rightToLeft<sub>i</sub> == leftToRight<sub>j</sub> + rightToLeft<sub>j</sub></code> 且 <code>i > j</code></li>
|
||||
</ul>
|
||||
|
||||
<p>工人通过桥时需要遵循以下规则:</p>
|
||||
|
||||
<ul>
|
||||
<li>如果工人 <code>x</code> 到达桥边时,工人 <code>y</code> 正在过桥,那么工人 <code>x</code> 需要在桥边等待。</li>
|
||||
<li>如果没有正在过桥的工人,那么在桥右边等待的工人可以先过桥。如果同时有多个工人在右边等待,那么 <strong>效率最低</strong> 的工人会先过桥。</li>
|
||||
<li>如果没有正在过桥的工人,且桥右边也没有在等待的工人,同时旧仓库还剩下至少一个箱子需要搬运,此时在桥左边的工人可以过桥。如果同时有多个工人在左边等待,那么 <strong>效率最低</strong> 的工人会先过桥。</li>
|
||||
</ul>
|
||||
|
||||
<p>所有 <code>n</code> 个盒子都需要放入新仓库,<span class="text-only" data-eleid="8" style="white-space: pre;">请你返回最后一个搬运箱子的工人 </span><strong><span class="text-only" data-eleid="9" style="white-space: pre;">到达河左岸</span></strong><span class="text-only" data-eleid="10" style="white-space: pre;"> 的时间。</span></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>n = 1, k = 3, time = [[1,1,2,1],[1,1,3,1],[1,1,4,1]]
|
||||
<strong>输出:</strong>6
|
||||
<strong>解释:</strong>
|
||||
从 0 到 1 :工人 2 从左岸过桥到达右岸。
|
||||
从 1 到 2 :工人 2 从旧仓库搬起一个箱子。
|
||||
从 2 到 6 :工人 2 从右岸过桥到达左岸。
|
||||
从 6 到 7 :工人 2 将箱子放入新仓库。
|
||||
整个过程在 7 分钟后结束。因为问题关注的是最后一个工人到达左岸的时间,所以返回 6 。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>n = 3, k = 2, time = [[1,9,1,8],[10,10,10,10]]
|
||||
<strong>输出:</strong>50
|
||||
<strong>解释:</strong>
|
||||
从 0 到 10 :工人 1 从左岸过桥到达右岸。
|
||||
从 10 到 20 :工人 1 从旧仓库搬起一个箱子。
|
||||
从 10 到 11 :工人 0 从左岸过桥到达右岸。
|
||||
从 11 到 20 :工人 0 从旧仓库搬起一个箱子。
|
||||
从 20 到 30 :工人 1 从右岸过桥到达左岸。
|
||||
从 30 到 40 :工人 1 将箱子放入新仓库。
|
||||
从 30 到 31 :工人 0 从右岸过桥到达左岸。
|
||||
从 31 到 39 :工人 0 将箱子放入新仓库。
|
||||
从 39 到 40 :工人 0 从左岸过桥到达右岸。
|
||||
从 40 到 49 :工人 0 从旧仓库搬起一个箱子。
|
||||
从 49 到 50 :工人 0 从右岸过桥到达左岸。
|
||||
从 50 到 58 :工人 0 将箱子放入新仓库。
|
||||
整个过程在 58 分钟后结束。因为问题关注的是最后一个工人到达左岸的时间,所以返回 50 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n, k <= 10<sup>4</sup></code></li>
|
||||
<li><code>time.length == k</code></li>
|
||||
<li><code>time[i].length == 4</code></li>
|
||||
<li><code>1 <= leftToRight<sub>i</sub>, pickOld<sub>i</sub>, rightToLeft<sub>i</sub>, putNew<sub>i</sub> <= 1000</code></li>
|
||||
</ul>
|
Reference in New Issue
Block a user