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,50 @@
|
||||
<p>给你一个字符串 <code>s</code> 和一个机器人,机器人当前有一个空字符串 <code>t</code> 。执行以下操作之一,直到 <code>s</code> 和 <code>t</code> <strong>都变成空字符串:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>删除字符串 <code>s</code> 的 <strong>第一个</strong> 字符,并将该字符给机器人。机器人把这个字符添加到 <code>t</code> 的尾部。</li>
|
||||
<li>删除字符串 <code>t</code> 的 <strong>最后一个</strong> 字符,并将该字符给机器人。机器人将该字符写到纸上。</li>
|
||||
</ul>
|
||||
|
||||
<p>请你返回纸上能写出的字典序最小的字符串。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>s = "zza"
|
||||
<b>输出:</b>"azz"
|
||||
<b>解释:</b>用 p 表示写出来的字符串。
|
||||
一开始,p="" ,s="zza" ,t="" 。
|
||||
执行第一个操作三次,得到 p="" ,s="" ,t="zza" 。
|
||||
执行第二个操作三次,得到 p="azz" ,s="" ,t="" 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>s = "bac"
|
||||
<b>输出:</b>"abc"
|
||||
<b>解释:</b>用 p 表示写出来的字符串。
|
||||
执行第一个操作两次,得到 p="" ,s="c" ,t="ba" 。
|
||||
执行第二个操作两次,得到 p="ab" ,s="c" ,t="" 。
|
||||
执行第一个操作,得到 p="ab" ,s="" ,t="c" 。
|
||||
执行第二个操作,得到 p="abc" ,s="" ,t="" 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>s = "bdda"
|
||||
<b>输出:</b>"addb"
|
||||
<b>解释:</b>用 p 表示写出来的字符串。
|
||||
一开始,p="" ,s="bdda" ,t="" 。
|
||||
执行第一个操作四次,得到 p="" ,s="" ,t="bdda" 。
|
||||
执行第二个操作四次,得到 p="addb" ,s="" ,t="" 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= s.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>s</code> 只包含小写英文字母。</li>
|
||||
</ul>
|
@@ -0,0 +1,65 @@
|
||||
<p>共有 <code>n</code> 位员工,每位员工都有一个从 <code>0</code> 到 <code>n - 1</code> 的唯一 id 。</p>
|
||||
|
||||
<p>给你一个二维整数数组 <code>logs</code> ,其中 <code>logs[i] = [id<sub>i</sub>, leaveTime<sub>i</sub>]</code> :</p>
|
||||
|
||||
<ul>
|
||||
<li><code>id<sub>i</sub></code> 是处理第 <code>i</code> 个任务的员工的 id ,且</li>
|
||||
<li><code>leaveTime<sub>i</sub></code> 是员工完成第 <code>i</code> 个任务的时刻。所有 <code>leaveTime<sub>i</sub></code> 的值都是 <strong>唯一</strong> 的。</li>
|
||||
</ul>
|
||||
|
||||
<p>注意,第 <code>i</code> 个任务在第 <code>(i - 1)</code> 个任务结束后立即开始,且第 <code>0</code> 个任务从时刻 <code>0</code> 开始。</p>
|
||||
|
||||
<p>返回处理用时最长的那个任务的员工的 id 。如果存在两个或多个员工同时满足,则返回几人中 <strong>最小</strong> 的 id 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>n = 10, logs = [[0,3],[2,5],[0,9],[1,15]]
|
||||
<strong>输出:</strong>1
|
||||
<strong>解释:</strong>
|
||||
任务 0 于时刻 0 开始,且在时刻 3 结束,共计 3 个单位时间。
|
||||
任务 1 于时刻 3 开始,且在时刻 5 结束,共计 2 个单位时间。
|
||||
任务 2 于时刻 5 开始,且在时刻 9 结束,共计 4 个单位时间。
|
||||
任务 3 于时刻 9 开始,且在时刻 15 结束,共计 6 个单位时间。
|
||||
时间最长的任务是任务 3 ,而 id 为 1 的员工是处理此任务的员工,所以返回 1 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>n = 26, logs = [[1,1],[3,7],[2,12],[7,17]]
|
||||
<strong>输出:</strong>3
|
||||
<strong>解释:</strong>
|
||||
任务 0 于时刻 0 开始,且在时刻 1 结束,共计 1 个单位时间。
|
||||
任务 1 于时刻 1 开始,且在时刻 7 结束,共计 6 个单位时间。
|
||||
任务 2 于时刻 7 开始,且在时刻 12 结束,共计 5 个单位时间。
|
||||
任务 3 于时刻 12 开始,且在时刻 17 结束,共计 5 个单位时间。
|
||||
时间最长的任务是任务 1 ,而 id 为 3 的员工是处理此任务的员工,所以返回 3 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>n = 2, logs = [[0,10],[1,20]]
|
||||
<strong>输出:</strong>0
|
||||
<strong>解释:</strong>
|
||||
任务 0 于时刻 0 开始,且在时刻 10 结束,共计 10 个单位时间。
|
||||
任务 1 于时刻 10 开始,且在时刻 20 结束,共计 10 个单位时间。
|
||||
时间最长的任务是任务 0 和 1 ,处理这两个任务的员工的 id 分别是 0 和 1 ,所以返回最小的 0 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= n <= 500</code></li>
|
||||
<li><code>1 <= logs.length <= 500</code></li>
|
||||
<li><code>logs[i].length == 2</code></li>
|
||||
<li><code>0 <= id<sub>i</sub> <= n - 1</code></li>
|
||||
<li><code>1 <= leaveTime<sub>i</sub> <= 500</code></li>
|
||||
<li><code>id<sub>i</sub> != id<sub>i + 1</sub></code></li>
|
||||
<li><code>leaveTime<sub>i</sub></code> 按严格递增顺序排列</li>
|
||||
</ul>
|
@@ -0,0 +1,39 @@
|
||||
<p>给你一个长度为 <code>n</code> 的 <strong>整数</strong> 数组 <code>pref</code> 。找出并返回满足下述条件且长度为 <code>n</code> 的数组<em> </em><code>arr</code> :</p>
|
||||
|
||||
<ul>
|
||||
<li><code>pref[i] = arr[0] ^ arr[1] ^ ... ^ arr[i]</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p>注意 <code>^</code> 表示 <strong>按位异或</strong>(bitwise-xor)运算。</p>
|
||||
|
||||
<p>可以证明答案是 <strong>唯一</strong> 的。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>pref = [5,2,0,3,1]
|
||||
<strong>输出:</strong>[5,7,2,3,2]
|
||||
<strong>解释:</strong>从数组 [5,7,2,3,2] 可以得到如下结果:
|
||||
- pref[0] = 5
|
||||
- pref[1] = 5 ^ 7 = 2
|
||||
- pref[2] = 5 ^ 7 ^ 2 = 0
|
||||
- pref[3] = 5 ^ 7 ^ 2 ^ 3 = 3
|
||||
- pref[4] = 5 ^ 7 ^ 2 ^ 3 ^ 2 = 1
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>pref = [13]
|
||||
<strong>输出:</strong>[13]
|
||||
<strong>解释:</strong>pref[0] = arr[0] = 13
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= pref.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= pref[i] <= 10<sup>6</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,43 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的 <code>m x n</code> 整数矩阵 <code>grid</code> 和一个整数 <code>k</code> 。你从起点 <code>(0, 0)</code> 出发,每一步只能往 <strong>下</strong> 或者往 <strong>右</strong> ,你想要到达终点 <code>(m - 1, n - 1)</code> 。</p>
|
||||
|
||||
<p>请你返回路径和能被 <code>k</code> 整除的路径数目,由于答案可能很大,返回答案对 <code>10<sup>9</sup> + 7</code> <strong>取余</strong> 的结果。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<p><img src="https://assets.leetcode.com/uploads/2022/08/13/image-20220813183124-1.png" style="width: 437px; height: 200px;"></p>
|
||||
|
||||
<pre><b>输入:</b>grid = [[5,2,4],[3,0,5],[0,7,2]], k = 3
|
||||
<b>输出:</b>2
|
||||
<b>解释:</b>有两条路径满足路径上元素的和能被 k 整除。
|
||||
第一条路径为上图中用红色标注的路径,和为 5 + 2 + 4 + 5 + 2 = 18 ,能被 3 整除。
|
||||
第二条路径为上图中用蓝色标注的路径,和为 5 + 3 + 0 + 5 + 2 = 15 ,能被 3 整除。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
<img src="https://assets.leetcode.com/uploads/2022/08/17/image-20220817112930-3.png" style="height: 85px; width: 132px;">
|
||||
<pre><b>输入:</b>grid = [[0,0]], k = 5
|
||||
<b>输出:</b>1
|
||||
<b>解释:</b>红色标注的路径和为 0 + 0 = 0 ,能被 5 整除。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
<img src="https://assets.leetcode.com/uploads/2022/08/12/image-20220812224605-3.png" style="width: 257px; height: 200px;">
|
||||
<pre><b>输入:</b>grid = [[7,3,4,9],[2,3,6,2],[2,3,7,0]], k = 1
|
||||
<b>输出:</b>10
|
||||
<b>解释:</b>每个数字都能被 1 整除,所以每一条路径的和都能被 k 整除。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>m == grid.length</code></li>
|
||||
<li><code>n == grid[i].length</code></li>
|
||||
<li><code>1 <= m, n <= 5 * 10<sup>4</sup></code></li>
|
||||
<li><code>1 <= m * n <= 5 * 10<sup>4</sup></code></li>
|
||||
<li><code>0 <= grid[i][j] <= 100</code></li>
|
||||
<li><code>1 <= k <= 50</code></li>
|
||||
</ul>
|
50
leetcode-cn/problem (Chinese)/零钱兑换 II [coin-change-ii].html
Normal file
50
leetcode-cn/problem (Chinese)/零钱兑换 II [coin-change-ii].html
Normal file
@@ -0,0 +1,50 @@
|
||||
<p>给你一个整数数组 <code>coins</code> 表示不同面额的硬币,另给一个整数 <code>amount</code> 表示总金额。</p>
|
||||
|
||||
<p>请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 <code>0</code> 。</p>
|
||||
|
||||
<p>假设每一种面额的硬币有无限个。 </p>
|
||||
|
||||
<p>题目数据保证结果符合 32 位带符号整数。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<ul>
|
||||
</ul>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>amount = 5, coins = [1, 2, 5]
|
||||
<strong>输出:</strong>4
|
||||
<strong>解释:</strong>有四种方式可以凑成总金额:
|
||||
5=5
|
||||
5=2+2+1
|
||||
5=2+1+1+1
|
||||
5=1+1+1+1+1
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>amount = 3, coins = [2]
|
||||
<strong>输出:</strong>0
|
||||
<strong>解释:</strong>只用面额 2 的硬币不能凑成总金额 3 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>amount = 10, coins = [10]
|
||||
<strong>输出:</strong>1
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= coins.length <= 300</code></li>
|
||||
<li><code>1 <= coins[i] <= 5000</code></li>
|
||||
<li><code>coins</code> 中的所有值 <strong>互不相同</strong></li>
|
||||
<li><code>0 <= amount <= 5000</code></li>
|
||||
</ul>
|
Reference in New Issue
Block a user