mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-05 23:41:41 +08:00
update
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
<p>给你一个<span data-keyword="binary-array">二进制数组 </span><code>nums</code> 。</p>
|
||||
|
||||
<p>如果一个<span data-keyword="subarray-nonempty">子数组</span>中 <strong>不存在 </strong>两个 <strong>相邻 </strong>元素的值 <strong>相同</strong> 的情况,我们称这样的子数组为 <strong>交替子数组 </strong>。</p>
|
||||
|
||||
<p>返回数组 <code>nums</code> 中交替子数组的数量。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">nums = [0,1,1,1]</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">5</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
<!-- 解释示例1的交替子数组 -->
|
||||
|
||||
<p>以下子数组是交替子数组:<code>[0]</code> 、<code>[1]</code> 、<code>[1]</code> 、<code>[1]</code> 以及 <code>[0,1]</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">nums = [1,0,1,0]</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">10</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
<!-- 解释示例2的交替子数组 -->
|
||||
|
||||
<p>数组的每个子数组都是交替子数组。可以统计在内的子数组共有 10 个。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>nums[i]</code> 不是 <code>0</code> 就是 <code>1</code> 。</li>
|
||||
</ul>
|
@@ -0,0 +1,49 @@
|
||||
<p>给你一个整数数组 <code>nums</code> 和一个 <strong>非负</strong> 整数 <code>k</code> 。</p>
|
||||
|
||||
<p>一次操作中,你可以选择任一下标 <code>i</code> ,然后将 <code>nums[i]</code> 加 <code>1</code> 或者减 <code>1</code> 。</p>
|
||||
|
||||
<p>请你返回将 <code>nums</code> <strong>中位数</strong> 变为 <code>k</code> 所需要的 <strong>最少</strong> 操作次数。</p>
|
||||
|
||||
<p>一个数组的 <strong>中位数</strong> 指的是数组按 <strong>非递减</strong> 顺序排序后最中间的元素。如果数组长度为偶数,我们选择中间两个数的较大值为中位数。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [2,5,6,8,5], k = 4</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>2</span></p>
|
||||
|
||||
<p><b>解释:</b>我们将 <code>nums[1]</code> 和 <code>nums[4]</code> 减 <code>1</code> 得到 <code>[2, 4, 6, 8, 4]</code> 。现在数组的中位数等于 <code>k</code> 。所以答案为 2 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [2,5,6,8,5], k = 7</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>3</span></p>
|
||||
|
||||
<p><b>解释:</b>我们将 <code>nums[1]</code> 增加 1 两次,并且将 <code>nums[2]</code> 增加 1 一次,得到 <code>[2, 7, 7, 8, 5]</code> 。结果数组的中位数等于 <code>k</code> 。所以答案为 3 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [1,2,3,4,5,6], k = 4</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>0</span></p>
|
||||
|
||||
<p><b>解释:</b>数组中位数已经等于 <code>k</code> 了,所以不需要进行任何操作。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 2 * 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= nums[i] <= 10<sup>9</sup></code></li>
|
||||
<li><code>1 <= k <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
35
leetcode-cn/problem (Chinese)/哈沙德数 [harshad-number].html
Normal file
35
leetcode-cn/problem (Chinese)/哈沙德数 [harshad-number].html
Normal file
@@ -0,0 +1,35 @@
|
||||
<p>如果一个整数能够被其各个数位上的数字之和整除,则称之为<strong> 哈沙德数</strong>(Harshad number)。给你一个整数 <code>x</code> 。如果 <code>x</code> 是 <strong>哈沙德数 </strong>,则返回<em> </em><code>x</code> 各个数位上的数字之和,否则,返回<em> </em><code>-1</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">x = 18</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">9</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><code>x</code> 各个数位上的数字之和为 <code>9</code> 。<code>18</code> 能被 <code>9</code> 整除。因此 <code>18</code> 是哈沙德数,答案是 <code>9</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong> <span class="example-io">x = 23</span></p>
|
||||
|
||||
<p><strong>输出:</strong> <span class="example-io">-1</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><code>x</code> 各个数位上的数字之和为 <code>5</code> 。<code>23</code> 不能被 <code>5</code> 整除。因此 <code>23</code> 不是哈沙德数,答案是 <code>-1</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= x <= 100</code></li>
|
||||
</ul>
|
@@ -0,0 +1,59 @@
|
||||
<p>给你一个 <code>n</code> 个节点的带权无向图,节点编号为 <code>0</code> 到 <code>n - 1</code> 。</p>
|
||||
|
||||
<p>给你一个整数 <code>n</code> 和一个数组 <code>edges</code> ,其中 <code>edges[i] = [u<sub>i</sub>, v<sub>i</sub>, w<sub>i</sub>]</code> 表示节点 <code>u<sub>i</sub></code> 和 <code>v<sub>i</sub></code> 之间有一条权值为 <code>w<sub>i</sub></code> 的无向边。</p>
|
||||
|
||||
<p>在图中,一趟旅途包含一系列节点和边。旅途开始和结束点都是图中的节点,且图中存在连接旅途中相邻节点的边。注意,一趟旅途可能访问同一条边或者同一个节点多次。</p>
|
||||
|
||||
<p>如果旅途开始于节点 <code>u</code> ,结束于节点 <code>v</code> ,我们定义这一趟旅途的 <strong>代价</strong> 是经过的边权按位与 <code>AND</code> 的结果。换句话说,如果经过的边对应的边权为 <code>w<sub>0</sub>, w<sub>1</sub>, w<sub>2</sub>, ..., w<sub>k</sub></code> ,那么代价为<code>w<sub>0</sub> & w<sub>1</sub> & w<sub>2</sub> & ... & w<sub>k</sub></code> ,其中 <code>&</code> 表示按位与 <code>AND</code> 操作。</p>
|
||||
|
||||
<p>给你一个二维数组 <code>query</code> ,其中 <code>query[i] = [s<sub>i</sub>, t<sub>i</sub>]</code> 。对于每一个查询,你需要找出从节点开始 <code>s<sub>i</sub></code> ,在节点 <code>t<sub>i</sub></code> 处结束的旅途的最小代价。如果不存在这样的旅途,答案为 <code>-1</code> 。</p>
|
||||
|
||||
<p>返回数组<em> </em><code>answer</code> ,其中<em> </em><code>answer[i]</code><em> </em>表示对于查询 <code>i</code> 的 <strong>最小</strong> 旅途代价。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>n = 5, edges = [[0,1,7],[1,3,7],[1,2,1]], query = [[0,3],[3,4]]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>[1,-1]</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/01/31/q4_example1-1.png" style="padding: 10px; background: rgb(255, 255, 255); border-radius: 0.5rem; width: 351px; height: 141px;" /></p>
|
||||
|
||||
<p>第一个查询想要得到代价为 1 的旅途,我们依次访问:<code>0->1</code>(边权为 7 )<code>1->2</code> (边权为 1 )<code>2->1</code>(边权为 1 )<code>1->3</code> (边权为 7 )。</p>
|
||||
|
||||
<p>第二个查询中,无法从节点 3 到节点 4 ,所以答案为 -1 。</p>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
</div>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>n = 3, edges = [[0,2,7],[0,1,15],[1,2,6],[1,2,1]], query = [[1,2]]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>[0]</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/01/31/q4_example2e.png" style="padding: 10px; background: rgb(255, 255, 255); border-radius: 0.5rem; width: 211px; height: 181px;" /></p>
|
||||
|
||||
<p>第一个查询想要得到代价为 0 的旅途,我们依次访问:<code>1->2</code>(边权为 1 ),<code>2->1</code>(边权 为 6 ),<code>1->2</code>(边权为 1 )。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= edges.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>edges[i].length == 3</code></li>
|
||||
<li><code>0 <= u<sub>i</sub>, v<sub>i</sub> <= n - 1</code></li>
|
||||
<li><code>u<sub>i</sub> != v<sub>i</sub></code></li>
|
||||
<li><code>0 <= w<sub>i</sub> <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= query.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>query[i].length == 2</code></li>
|
||||
<li><code>0 <= s<sub>i</sub>, t<sub>i</sub> <= n - 1</code></li>
|
||||
</ul>
|
@@ -0,0 +1,75 @@
|
||||
<p>给你一个长度为 <code>n</code> 的二进制数组 <code>possible</code> 。</p>
|
||||
|
||||
<p>莉叩酱和冬坂五百里正在玩一个有 <code>n</code> 个关卡的游戏,游戏中有一些关卡是 <strong>困难</strong> 模式,其他的关卡是 <strong>简单</strong> 模式。如果 <code>possible[i] == 0</code> ,那么第 <code>i</code> 个关卡是 <strong>困难</strong> 模式。一个玩家通过一个简单模式的关卡可以获得 <code>1</code> 分,通过困难模式的关卡将失去 <code>1</code> 分。</p>
|
||||
|
||||
<p>游戏的一开始,莉叩酱将从第 <code>0</code> 级开始 <strong>按顺序</strong> 完成一些关卡,然后冬坂五百里会完成剩下的所有关卡。</p>
|
||||
|
||||
<p>假设两名玩家都采取最优策略,目的是 <strong>最大化</strong> 自己的得分,莉叩酱想知道自己 <strong>最少</strong> 需要完成多少个关卡,才能获得比冬坂五百里更多的分数。</p>
|
||||
|
||||
<p>请你返回莉叩酱获得比冬坂五百里更多的分数所需要完成的 <strong>最少</strong> 关卡数目,如果 <strong>无法</strong> 达成,那么返回 <code>-1</code> 。</p>
|
||||
|
||||
<p><strong>注意</strong>,每个玩家都至少需要完成 <code>1</code> 个关卡。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>possible = [1,0,1,0]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>1</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>我们来看一下莉叩酱可以完成的关卡数目:</p>
|
||||
|
||||
<ul>
|
||||
<li>如果莉叩酱只完成关卡 0 ,冬坂五百里完成剩下的所有关卡,那么莉叩酱获得 1 分,冬坂五百里获得 -1 + 1 - 1 = -1 分。</li>
|
||||
<li>如果莉叩酱完成到关卡 1 ,冬坂五百里完成剩下的所有关卡,那么莉叩酱获得 1 - 1 = 0 分,冬坂五百里获得 1 - 1 = 0 分。</li>
|
||||
<li>如果莉叩酱完成到关卡 2 ,冬坂五百里完成剩下的所有关卡,那么莉叩酱获得 1 - 1 + 1 = 1 分,冬坂五百里获得 -1 分。</li>
|
||||
</ul>
|
||||
|
||||
<p>莉叩酱需要完成至少一个关卡获得更多的分数。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>possible = [1,1,1,1,1]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>3</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>我们来看一下莉叩酱可以完成的关卡数目:</p>
|
||||
|
||||
<ul>
|
||||
<li>如果莉叩酱只完成关卡 0 ,冬坂五百里完成剩下的所有关卡,那么莉叩酱获得 1 分,冬坂五百里获得 4 分。</li>
|
||||
<li>如果莉叩酱完成到关卡 1 ,冬坂五百里完成剩下的所有关卡,那么莉叩酱获得 2 分,冬坂五百里获得 3 分。</li>
|
||||
<li>如果莉叩酱完成到关卡 2 ,冬坂五百里完成剩下的所有关卡,那么莉叩酱获得 3 分,冬坂五百里获得 2 分。</li>
|
||||
<li>如果莉叩酱完成到关卡 3 ,冬坂五百里完成剩下的所有关卡,那么莉叩酱获得 4 分,冬坂五百里获得 1 分。</li>
|
||||
</ul>
|
||||
|
||||
<p>莉叩酱需要完成至少三个关卡获得更多的分数。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>possible = [0,0]</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>-1</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>两名玩家只能各完成 1 个关卡,莉叩酱完成关卡 0 得到 -1 分,冬坂五百里完成关卡 1 得到 -1 分。两名玩家得分相同,所以莉叩酱无法得到更多分数。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= n == possible.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>possible[i]</code> 要么是 <code>0</code> 要么是 <code>1</code> 。</li>
|
||||
</ul>
|
@@ -0,0 +1,53 @@
|
||||
<p>给你一个 <strong>非负</strong> 整数数组 <code>nums</code> 和一个整数 <code>k</code> 。</p>
|
||||
|
||||
<p>如果一个数组中所有元素的按位或运算 <code>OR</code> 的值 <strong>至少</strong> 为 <code>k</code> ,那么我们称这个数组是 <strong>特别的</strong> 。</p>
|
||||
|
||||
<p>请你返回 <code>nums</code> 中 <strong>最短特别非空</strong> <span data-keyword="subarray-nonempty">子数组</span>的长度,如果特别子数组不存在,那么返回 <code>-1</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [1,2,3], k = 2</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>1</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>子数组 <code>[3]</code> 的按位 <code>OR</code> 值为 <code>3</code> ,所以我们返回 <code>1</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [2,1,8], k = 10</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>3</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>子数组 <code>[2,1,8]</code> 的按位 <code>OR</code> 值为 <code>11</code> ,所以我们返回 <code>3</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [1,2], k = 0</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>1</span></p>
|
||||
|
||||
<p><b>解释:</b></p>
|
||||
|
||||
<p>子数组 <code>[1]</code> 的按位 <code>OR</code> 值为 <code>1</code> ,所以我们返回 <code>1</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 50</code></li>
|
||||
<li><code>0 <= nums[i] <= 50</code></li>
|
||||
<li><code>0 <= k < 64</code></li>
|
||||
</ul>
|
@@ -0,0 +1,53 @@
|
||||
<p>给你一个 <strong>非负</strong> 整数数组 <code>nums</code> 和一个整数 <code>k</code> 。</p>
|
||||
|
||||
<p>如果一个数组中所有元素的按位或运算 <code>OR</code> 的值 <strong>至少</strong> 为 <code>k</code> ,那么我们称这个数组是 <strong>特别的</strong> 。</p>
|
||||
|
||||
<p>请你返回 <code>nums</code> 中 <strong>最短特别非空</strong> <span data-keyword="subarray-nonempty">子数组</span>的长度,如果特别子数组不存在,那么返回 <code>-1</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [1,2,3], k = 2</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>1</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>子数组 <code>[3]</code> 的按位 <code>OR</code> 值为 <code>3</code> ,所以我们返回 <code>1</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [2,1,8], k = 10</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>3</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p>子数组 <code>[2,1,8]</code> 的按位 <code>OR</code> 值为 <code>11</code> ,所以我们返回 <code>3</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [1,2], k = 0</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>1</span></p>
|
||||
|
||||
<p><b>解释:</b></p>
|
||||
|
||||
<p>子数组 <code>[1]</code> 的按位 <code>OR</code> 值为 <code>1</code> ,所以我们返回 <code>1</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 2 * 10<sup>5</sup></code></li>
|
||||
<li><code>0 <= nums[i] <= 10<sup><font size="1">9</font></sup></code></li>
|
||||
<li><code>0 <= k <= 10<sup>9</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,38 @@
|
||||
<p>给你两个整数 <code>numBottles</code> 和 <code>numExchange</code> 。</p>
|
||||
|
||||
<p><code>numBottles</code> 代表你最初拥有的满水瓶数量。在一次操作中,你可以执行以下操作之一:</p>
|
||||
|
||||
<ul>
|
||||
<li>喝掉任意数量的满水瓶,使它们变成空水瓶。</li>
|
||||
<li>用 <code>numExchange</code> 个空水瓶交换一个满水瓶。然后,将 <code>numExchange</code> 的值增加 1 。</li>
|
||||
</ul>
|
||||
|
||||
<p>注意,你不能使用相同的 <code>numExchange</code> 值交换多批空水瓶。例如,如果 <code>numBottles == 3</code> 并且 <code>numExchange == 1</code> ,则不能用 <code>3</code> 个空水瓶交换成 <code>3</code> 个满水瓶。</p>
|
||||
|
||||
<p>返回你 <strong>最多</strong> 可以喝到多少瓶水。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2024/01/28/exampleone1.png" style="width: 948px; height: 482px; padding: 10px; background: #fff; border-radius: .5rem;" />
|
||||
<pre>
|
||||
<strong>输入:</strong>numBottles = 13, numExchange = 6
|
||||
<strong>输出:</strong>15
|
||||
<strong>解释:</strong>上表显示了满水瓶的数量、空水瓶的数量、numExchange 的值,以及累计喝掉的水瓶数量。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
<img alt="" src="https://assets.leetcode.com/uploads/2024/01/28/example231.png" style="width: 990px; height: 642px; padding: 10px; background: #fff; border-radius: .5rem;" />
|
||||
<pre>
|
||||
<strong>输入:</strong>numBottles = 10, numExchange = 3
|
||||
<strong>输出:</strong>13
|
||||
<strong>解释:</strong>上表显示了满水瓶的数量、空水瓶的数量、numExchange 的值,以及累计喝掉的水瓶数量。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= numBottles <= 100 </code></li>
|
||||
<li><code>1 <= numExchange <= 100</code></li>
|
||||
</ul>
|
@@ -0,0 +1,38 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的数组 <code>points</code> ,它表示二维平面上一些点的整数坐标,其中 <code>points[i] = [x<sub>i</sub>, y<sub>i</sub>]</code> 。</p>
|
||||
|
||||
<p>两点之间的距离定义为它们的<span data-keyword="manhattan-distance">曼哈顿距离</span>。</p>
|
||||
|
||||
<p>请你恰好移除一个点,返回移除后任意两点之间的 <strong>最大 </strong>距离可能的 <strong>最小 </strong>值。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>points = [[3,10],[5,15],[10,2],[4,4]]
|
||||
<strong>输出:</strong>12
|
||||
<strong>解释:</strong>移除每个点后的最大距离如下所示:
|
||||
- 移除第 0 个点后,最大距离在点 (5, 15) 和 (10, 2) 之间,为 |5 - 10| + |15 - 2| = 18 。
|
||||
- 移除第 1 个点后,最大距离在点 (3, 10) 和 (10, 2) 之间,为 |3 - 10| + |10 - 2| = 15 。
|
||||
- 移除第 2 个点后,最大距离在点 (5, 15) 和 (4, 4) 之间,为 |5 - 4| + |15 - 4| = 12 。
|
||||
- 移除第 3 个点后,最大距离在点 (5, 15) 和 (10, 2) 之间的,为 |5 - 10| + |15 - 2| = 18 。
|
||||
在恰好移除一个点后,任意两点之间的最大距离可能的最小值是 12 。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>points = [[1,1],[1,1],[1,1]]
|
||||
<strong>输出:</strong>0
|
||||
<strong>解释:</strong>移除任一点后,任意两点之间的最大距离都是 0 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>3 <= points.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>points[i].length == 2</code></li>
|
||||
<li><code>1 <= points[i][0], points[i][1] <= 10<sup>8</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,62 @@
|
||||
<p>给你一个整数数组 <code>nums</code> 。</p>
|
||||
|
||||
<p>返回数组 <code>nums</code> 中<strong> 严格递增 </strong>或 <strong>严格递减 </strong>的最长非空子数组的长度。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong><span class="example-io">nums = [1,4,3,3,2]</span></p>
|
||||
|
||||
<p><strong>输出:</strong><span class="example-io">2</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><code>nums</code> 中严格递增的子数组有<code>[1]</code>、<code>[2]</code>、<code>[3]</code>、<code>[3]</code>、<code>[4]</code> 以及 <code>[1,4]</code> 。</p>
|
||||
|
||||
<p><code>nums</code> 中严格递减的子数组有<code>[1]</code>、<code>[2]</code>、<code>[3]</code>、<code>[3]</code>、<code>[4]</code>、<code>[3,2]</code> 以及 <code>[4,3]</code> 。</p>
|
||||
|
||||
<p>因此,返回 <code>2</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong><span class="example-io">nums = [3,3,3,3]</span></p>
|
||||
|
||||
<p><strong>输出:</strong><span class="example-io">1</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><code>nums</code> 中严格递增的子数组有 <code>[3]</code>、<code>[3]</code>、<code>[3]</code> 以及 <code>[3]</code> 。</p>
|
||||
|
||||
<p><code>nums</code> 中严格递减的子数组有 <code>[3]</code>、<code>[3]</code>、<code>[3]</code> 以及 <code>[3]</code> 。</p>
|
||||
|
||||
<p>因此,返回 <code>1</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong><span class="example-io">nums = [3,2,1]</span></p>
|
||||
|
||||
<p><strong>输出:</strong><span class="example-io">3</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><code>nums</code> 中严格递增的子数组有 <code>[3]</code>、<code>[2]</code> 以及 <code>[1]</code> 。</p>
|
||||
|
||||
<p><code>nums</code> 中严格递减的子数组有 <code>[3]</code>、<code>[2]</code>、<code>[1]</code>、<code>[3,2]</code>、<code>[2,1]</code> 以及 <code>[3,2,1]</code> 。</p>
|
||||
|
||||
<p>因此,返回 <code>3</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 50</code></li>
|
||||
<li><code>1 <= nums[i] <= 50</code></li>
|
||||
</ul>
|
@@ -0,0 +1,55 @@
|
||||
<p>给你一个长度为 <code>n</code> 的整数数组 <code>nums</code> 和一个 <strong>正</strong> 整数 <code>k</code> 。</p>
|
||||
|
||||
<p>一个子序列的 <strong>能量</strong> 定义为子序列中 <strong>任意</strong> 两个元素的差值绝对值的 <strong>最小值</strong> 。</p>
|
||||
|
||||
<p>请你返回 <code>nums</code> 中长度 <strong>等于</strong> <code>k</code> 的 <strong>所有</strong> 子序列的 <strong>能量和</strong> 。</p>
|
||||
|
||||
<p>由于答案可能会很大,将答案对 <code>10<sup>9 </sup>+ 7</code> <strong>取余</strong> 后返回。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [1,2,3,4], k = 3</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>4</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><code>nums</code> 中总共有 4 个长度为 3 的子序列:<code>[1,2,3]</code> ,<code>[1,3,4]</code> ,<code>[1,2,4]</code> 和 <code>[2,3,4]</code> 。能量和为 <code>|2 - 3| + |3 - 4| + |2 - 1| + |3 - 4| = 4</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><span class="example-io"><b>输入:</b>nums = [2,2], k = 2</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>0</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><code>nums</code> 中唯一一个长度为 2 的子序列是 <code>[2,2]</code> 。能量和为 <code>|2 - 2| = 0</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<div class="example-block">
|
||||
<p><strong>输入:</strong><span class="example-io">nums = [4,3,-1], k = 2</span></p>
|
||||
|
||||
<p><span class="example-io"><b>输出:</b>10</span></p>
|
||||
|
||||
<p><strong>解释:</strong></p>
|
||||
|
||||
<p><code>nums</code> 总共有 3 个长度为 2 的子序列:<code>[4,3]</code> ,<code>[4,-1]</code> 和 <code>[3,-1]</code> 。能量和为 <code>|4 - 3| + |4 - (-1)| + |3 - (-1)| = 10</code> 。</p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>2 <= n == nums.length <= 50</code></li>
|
||||
<li><code>-10<sup>8</sup> <= nums[i] <= 10<sup>8</sup> </code></li>
|
||||
<li><code>2 <= k <= n</code></li>
|
||||
</ul>
|
@@ -0,0 +1,60 @@
|
||||
<p>给你一个字符串 <code>s</code> 和一个整数 <code>k</code> 。</p>
|
||||
|
||||
<p>定义函数 <code>distance(s<sub>1</sub>, s<sub>2</sub>)</code> ,用于衡量两个长度为 <code>n</code> 的字符串 <code>s<sub>1</sub></code> 和 <code>s<sub>2</sub></code> 之间的距离,即:</p>
|
||||
|
||||
<ul>
|
||||
<li>字符 <code>'a'</code> 到 <code>'z'</code> 按 <strong>循环 </strong>顺序排列,对于区间 <code>[0, n - 1]</code> 中的 <code>i</code> ,计算所有「 <code>s<sub>1</sub>[i]</code> 和 <code>s<sub>2</sub>[i]</code> 之间<strong> 最小距离</strong>」的 <strong>和 </strong>。</li>
|
||||
</ul>
|
||||
|
||||
<p>例如,<code>distance("ab", "cd") == 4</code> ,且 <code>distance("a", "z") == 1</code> 。</p>
|
||||
|
||||
<p>你可以对字符串 <code>s</code> 执行<strong> 任意次 </strong>操作。在每次操作中,可以将 <code>s</code> 中的一个字母 <strong>改变 </strong>为<strong> 任意 </strong>其他小写英文字母。</p>
|
||||
|
||||
<p>返回一个字符串,表示在执行一些操作后你可以得到的 <strong>字典序最小</strong> 的字符串 <code>t</code> ,且满足 <code>distance(s, t) <= k</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong class="example">示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "zbbz", k = 3
|
||||
<strong>输出:</strong>"aaaz"
|
||||
<strong>解释:</strong>在这个例子中,可以执行以下操作:
|
||||
将 s[0] 改为 'a' ,s 变为 "abbz" 。
|
||||
将 s[1] 改为 'a' ,s 变为 "aabz" 。
|
||||
将 s[2] 改为 'a' ,s 变为 "aaaz" 。
|
||||
"zbbz" 和 "aaaz" 之间的距离等于 k = 3 。
|
||||
可以证明 "aaaz" 是在任意次操作后能够得到的字典序最小的字符串。
|
||||
因此,答案是 "aaaz" 。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "xaxcd", k = 4
|
||||
<strong>输出:</strong>"aawcd"
|
||||
<strong>解释:</strong>在这个例子中,可以执行以下操作:
|
||||
将 s[0] 改为 'a' ,s 变为 "aaxcd" 。
|
||||
将 s[2] 改为 'w' ,s 变为 "aawcd" 。
|
||||
"xaxcd" 和 "aawcd" 之间的距离等于 k = 4 。
|
||||
可以证明 "aawcd" 是在任意次操作后能够得到的字典序最小的字符串。
|
||||
因此,答案是 "aawcd" 。
|
||||
</pre>
|
||||
|
||||
<p><strong class="example">示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "lol", k = 0
|
||||
<strong>输出:</strong>"lol"
|
||||
<strong>解释:</strong>在这个例子中,k = 0,更改任何字符都会使得距离大于 0 。
|
||||
因此,答案是 "lol" 。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= s.length <= 100</code></li>
|
||||
<li><code>0 <= k <= 2000</code></li>
|
||||
<li><code>s</code> 只包含小写英文字母。</li>
|
||||
</ul>
|
Reference in New Issue
Block a user