1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-09-05 23:41:41 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
This commit is contained in:
zhangbk1
2024-04-30 10:04:49 +08:00
parent 45399227fb
commit 59e97714b1
112 changed files with 28379 additions and 15460 deletions

View File

@@ -0,0 +1,67 @@
<p>给你一个大小为 <code>m x n</code>&nbsp;的二维矩形&nbsp;<code>grid</code>&nbsp;。每次 <strong>操作</strong>&nbsp;中,你可以将 <strong>任一</strong> 格子的值修改为 <strong>任意</strong>&nbsp;非负整数。完成所有操作后,你需要确保每个格子&nbsp;<code>grid[i][j]</code>&nbsp;的值满足:</p>
<ul>
<li>如果下面相邻格子存在的话,它们的值相等,也就是&nbsp;<code>grid[i][j] == grid[i + 1][j]</code>(如果存在)。</li>
<li>如果右边相邻格子存在的话,它们的值不相等,也就是&nbsp;<code>grid[i][j] != grid[i][j + 1]</code>(如果存在)。</li>
</ul>
<p>请你返回需要的 <strong>最少</strong>&nbsp;操作数目。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>grid = [[1,0,2],[1,0,2]]</span></p>
<p><b>输出:</b>0</p>
<p><b>解释:</b></p>
<p><strong><img alt="" src="https://assets.leetcode.com/uploads/2024/04/15/examplechanged.png" style="width: 254px; height: 186px;padding: 10px; background: #fff; border-radius: .5rem;" /></strong></p>
<p>矩阵中所有格子已经满足要求。</p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>grid = [[1,1,1],[0,0,0]]</span></p>
<p><b>输出:</b>3</p>
<p><strong>解释:</strong></p>
<p><strong><img alt="" src="https://assets.leetcode.com/uploads/2024/03/27/example21.png" style="width: 254px; height: 186px;padding: 10px; background: #fff; border-radius: .5rem;" /></strong></p>
<p>将矩阵变成&nbsp;<code>[[1,0,1],[1,0,1]]</code>&nbsp;,它满足所有要求,需要 3 次操作:</p>
<ul>
<li>&nbsp;<code>grid[1][0]</code>&nbsp;变为 1 。</li>
<li>&nbsp;<code>grid[0][1]</code> 变为 0 。</li>
<li>&nbsp;<code>grid[1][2]</code>&nbsp;变为 1 。</li>
</ul>
</div>
<p><strong class="example">示例 3</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>grid = [[1],[2],[3]]</span></p>
<p><b>输出:</b>2</p>
<p><strong>解释:</strong></p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/03/31/changed.png" style="width: 86px; height: 277px;padding: 10px; background: #fff; border-radius: .5rem;" /></p>
<p>这个矩阵只有一列,我们可以通过 2 次操作将所有格子里的值变为 1 。</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= n, m &lt;= 1000</code></li>
<li><code>0 &lt;= grid[i][j] &lt;= 9</code></li>
</ul>

View File

@@ -0,0 +1,73 @@
<p>给你两个数组 <code>nums</code><code>andValues</code>,长度分别为 <code>n</code><code>m</code></p>
<p>数组的 <strong></strong>等于该数组的 <strong>最后一个 </strong>元素。</p>
<p>你需要将 <code>nums</code> 划分为 <code>m</code><strong>不相交的连续 </strong>子数组,对于第 <code>i<sup>th</sup></code> 个子数组 <code>[l<sub>i</sub>, r<sub>i</sub>]</code>,子数组元素的按位<code>AND</code>运算结果等于 <code>andValues[i]</code>,换句话说,对所有的 <code>1 &lt;= i &lt;= m</code><code>nums[l<sub>i</sub>] &amp; nums[l<sub>i</sub> + 1] &amp; ... &amp; nums[r<sub>i</sub>] == andValues[i]</code> ,其中 <code>&amp;</code> 表示按位<code>AND</code>运算符。</p>
<p>返回将 <code>nums</code> 划分为 <code>m</code> 个子数组所能得到的可能的 <strong>最小 </strong>子数组 <strong></strong> 之和。如果无法完成这样的划分,则返回 <code>-1</code></p>
<p>&nbsp;</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], andValues = [0,3,3,2]</span></p>
<p><strong>输出:</strong> <span class="example-io">12</span></p>
<p><strong>解释:</strong></p>
<p>唯一可能的划分方法为:</p>
<ol>
<li><code>[1,4]</code> 因为 <code>1 &amp; 4 == 0</code></li>
<li><code>[3]</code> 因为单元素子数组的按位 <code>AND</code> 结果就是该元素本身</li>
<li><code>[3]</code> 因为单元素子数组的按位 <code>AND</code> 结果就是该元素本身</li>
<li><code>[2]</code> 因为单元素子数组的按位 <code>AND</code> 结果就是该元素本身</li>
</ol>
<p>这些子数组的值之和为 <code>4 + 3 + 3 + 2 = 12</code></p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block">
<p><strong>输入:</strong> <span class="example-io">nums = [2,3,5,7,7,7,5], andValues = [0,7,5]</span></p>
<p><strong>输出:</strong> <span class="example-io">17</span></p>
<p><strong>解释:</strong></p>
<p>划分 <code>nums</code> 的三种方式为:</p>
<ol>
<li><code>[[2,3,5],[7,7,7],[5]]</code> 其中子数组的值之和为 <code>5 + 7 + 5 = 17</code></li>
<li><code>[[2,3,5,7],[7,7],[5]]</code> 其中子数组的值之和为 <code>7 + 7 + 5 = 19</code></li>
<li><code>[[2,3,5,7,7],[7],[5]]</code> 其中子数组的值之和为 <code>7 + 7 + 5 = 19</code></li>
</ol>
<p>子数组值之和的最小可能值为 <code>17</code></p>
</div>
<p><strong class="example">示例 3</strong></p>
<div class="example-block">
<p><strong>输入:</strong> <span class="example-io">nums = [1,2,3,4], andValues = [2]</span></p>
<p><strong>输出:</strong> <span class="example-io">-1</span></p>
<p><strong>解释:</strong></p>
<p>整个数组 <code>nums</code> 的按位 <code>AND</code> 结果为 <code>0</code>。由于无法将 <code>nums</code> 划分为单个子数组使得元素的按位 <code>AND</code> 结果为 <code>2</code>,因此返回 <code>-1</code></p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= n == nums.length &lt;= 10<sup>4</sup></code></li>
<li><code>1 &lt;= m == andValues.length &lt;= min(n, 10)</code></li>
<li><code>1 &lt;= nums[i] &lt; 10<sup>5</sup></code></li>
<li><code>0 &lt;= andValues[j] &lt; 10<sup>5</sup></code></li>
</ul>

View File

@@ -0,0 +1,69 @@
<p>给你一个整数数组 <code>coins</code> 表示不同面额的硬币,另给你一个整数 <code>k</code></p>
<p>你有无限量的每种面额的硬币。但是,你<strong> 不能 </strong>组合使用不同面额的硬币。</p>
<p>返回使用这些硬币能制造的<strong></strong><code>k<sup>th</sup></code><strong></strong> 金额。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div class="example-block" style="
border-color: var(--border-tertiary);
border-left-width: 2px;
color: var(--text-secondary);
font-size: .875rem;
margin-bottom: 1rem;
margin-top: 1rem;
overflow: visible;
padding-left: 1rem;">
<p><strong>输入:</strong> <span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;">coins = [3,6,9], k = 3</span></p>
<p><strong>输出:</strong> <span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;">9</span></p>
<p><strong>解释:</strong>给定的硬币可以制造以下金额:<br />
3元硬币产生3的倍数3, 6, 9, 12, 15等。<br />
6元硬币产生6的倍数6, 12, 18, 24等。<br />
9元硬币产生9的倍数9, 18, 27, 36等。<br />
所有硬币合起来可以产生3, 6, <u><strong>9</strong></u>, 12, 15等。</p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block" style="
border-color: var(--border-tertiary);
border-left-width: 2px;
color: var(--text-secondary);
font-size: .875rem;
margin-bottom: 1rem;
margin-top: 1rem;
overflow: visible;
padding-left: 1rem;">
<p><strong>输入:</strong><span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;">coins = [5,2], k = 7</span></p>
<p><strong>输出:</strong><span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;">12</span></p>
<p><strong>解释:</strong>给定的硬币可以制造以下金额:<br />
5元硬币产生5的倍数5, 10, 15, 20等。<br />
2元硬币产生2的倍数2, 4, 6, 8, 10, 12等。<br />
所有硬币合起来可以产生2, 4, 5, 6, 8, 10, <u><strong>12</strong></u>, 14, 15等。</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= coins.length &lt;= 15</code></li>
<li><code>1 &lt;= coins[i] &lt;= 25</code></li>
<li><code>1 &lt;= k &lt;= 2 * 10<sup>9</sup></code></li>
<li><code>coins</code> 包含两两不同的整数。</li>
</ul>

View File

@@ -0,0 +1,38 @@
<p>给你一个字符串&nbsp;<code>s</code>&nbsp;。一个字符串的&nbsp;<strong>分数</strong>&nbsp;定义为相邻字符 <strong>ASCII</strong>&nbsp;码差值绝对值的和。</p>
<p>请你返回 <code>s</code>&nbsp;<strong>分数</strong>&nbsp;</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>s = "hello"</span></p>
<p><span class="example-io"><b>输出:</b>13</span></p>
<p><strong>解释:</strong></p>
<p><code>s</code>&nbsp;中字符的 <strong>ASCII </strong>码分别为:<code>'h' = 104</code>&nbsp;<code>'e' = 101</code>&nbsp;<code>'l' = 108</code>&nbsp;<code>'o' = 111</code>&nbsp;。所以&nbsp;<code>s</code>&nbsp;的分数为&nbsp;<code>|104 - 101| + |101 - 108| + |108 - 108| + |108 - 111| = 3 + 7 + 0 + 3 = 13</code>&nbsp;</p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>s = "zaz"</span></p>
<p><span class="example-io"><b>输出:</b>50</span></p>
<p><strong>解释:</strong></p>
<p><code>s</code>&nbsp;中字符的 <strong>ASCII&nbsp;</strong>码分别为:<code>'z' = 122</code>&nbsp;<code>'a' = 97</code>&nbsp;。所以&nbsp;<code>s</code>&nbsp;的分数为&nbsp;<code>|122 - 97| + |97 - 122| = 25 + 25 = 50</code>&nbsp;</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>2 &lt;= s.length &lt;= 100</code></li>
<li><code>s</code>&nbsp;只包含小写英文字母。</li>
</ul>

View File

@@ -0,0 +1,73 @@
<p>给你两个长度相等的数组 <code>nums1</code><code>nums2</code></p>
<p>数组 <code>nums1</code> 中的每个元素都与变量 <code>x</code> 所表示的整数相加。如果 <code>x</code> 为负数,则表现为元素值的减少。</p>
<p>在与 <code>x</code> 相加后,<code>nums1</code><code>nums2</code> <strong>相等</strong> 。当两个数组中包含相同的整数,并且这些整数出现的频次相同时,两个数组 <strong>相等</strong></p>
<p>返回整数 <code>x</code></p>
<p>&nbsp;</p>
<p><strong class="example">示例 1:</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;
">nums1 = [2,6,4], nums2 = [9,7,5]</span></p>
<p><strong>输出:</strong><span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;
">3</span></p>
<p><strong>解释:</strong></p>
<p>与 3 相加后,<code>nums1</code><code>nums2</code> 相等。</p>
</div>
<p><strong class="example">示例 2:</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;
">nums1 = [10], nums2 = [5]</span></p>
<p><strong>输出:</strong><span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;
">-5</span></p>
<p><strong>解释:</strong></p>
<p><code>-5</code> 相加后,<code>nums1</code><code>nums2</code> 相等。</p>
</div>
<p><strong class="example">示例 3:</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;
">nums1 = [1,1,1,1], nums2 = [1,1,1,1]</span></p>
<p><strong>输出:</strong><span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;
">0</span></p>
<p><strong>解释:</strong></p>
<p>与 0 相加后,<code>nums1</code><code>nums2</code> 相等。</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= nums1.length == nums2.length &lt;= 100</code></li>
<li><code>0 &lt;= nums1[i], nums2[i] &lt;= 1000</code></li>
<li>测试用例以这样的方式生成:存在一个整数 <code>x</code>,使得 <code>nums1</code> 中的每个元素都与 <code>x</code> 相加后,<code>nums1</code><code>nums2</code> 相等。</li>
</ul>

View File

@@ -0,0 +1,56 @@
<p>给你两个整数数组 <code>nums1</code><code>nums2</code></p>
<p><code>nums1</code> 中移除两个元素,并且所有其他元素都与变量 <code>x</code> 所表示的整数相加。如果 <code>x</code> 为负数,则表现为元素值的减少。</p>
<p>执行上述操作后,<code>nums1</code><code>nums2</code> <strong>相等</strong> 。当两个数组中包含相同的整数,并且这些整数出现的频次相同时,两个数组 <strong>相等</strong></p>
<p>返回能够实现数组相等的 <strong>最小 </strong>整数<em> </em><code>x</code><em> </em></p>
<p>&nbsp;</p>
<p><strong class="example">示例 1:</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;
">nums1 = [4,20,16,12,8], nums2 = [14,18,10]</span></p>
<p><strong>输出:</strong><span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;
">-2</span></p>
<p><strong>解释:</strong></p>
<p>移除 <code>nums1</code> 中下标为 <code>[0,4]</code> 的两个元素,并且每个元素与 <code>-2</code> 相加后,<code>nums1</code> 变为 <code>[18,14,10]</code> ,与 <code>nums2</code> 相等。</p>
</div>
<p><strong class="example">示例 2:</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;
">nums1 = [3,5,5,3], nums2 = [7,7]</span></p>
<p><strong>输出:</strong><span class="example-io" style="
font-family: Menlo,sans-serif;
font-size: 0.85rem;
">2</span></p>
<p><strong>解释:</strong></p>
<p>移除 <code>nums1</code> 中下标为 <code>[0,3]</code> 的两个元素,并且每个元素与 <code>2</code> 相加后,<code>nums1</code> 变为 <code>[7,7]</code> ,与 <code>nums2</code> 相等。</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>3 &lt;= nums1.length &lt;= 200</code></li>
<li><code>nums2.length == nums1.length - 2</code></li>
<li><code>0 &lt;= nums1[i], nums2[i] &lt;= 1000</code></li>
<li>测试用例以这样的方式生成:存在一个整数 <code>x</code><code>nums1</code> 中的每个元素都与 <code>x</code> 相加后,再移除两个元素,<code>nums1</code> 可以与 <code>nums2</code> 相等。</li>
</ul>

View File

@@ -0,0 +1,56 @@
<p>给你一个整数数组 <code>nums</code> 。数组 <code>nums</code><strong> 唯一性数组</strong> 是一个按元素从小到大排序的数组,包含了 <code>nums</code> 的所有<span data-keyword="subarray-nonempty">非空子数组中</span>不同元素的个数。</p>
<p>换句话说,这是由所有 <code>0 &lt;= i &lt;= j &lt; nums.length</code><code>distinct(nums[i..j])</code> 组成的递增数组。</p>
<p>其中,<code>distinct(nums[i..j])</code> 表示从下标 <code>i</code> 到下标 <code>j</code> 的子数组中不同元素的数量。</p>
<p>返回 <code>nums</code> <strong>唯一性数组 </strong><strong>中位数 </strong></p>
<p><strong>注意</strong>,数组的 <strong>中位数 </strong>定义为有序数组的中间元素。如果有两个中间元素,则取值较小的那个。<!-- notionvc: 7e0f5178-4273-4a82-95ce-3395297921dc --></p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">nums = [1,2,3]</span></p>
<p><strong>输出:</strong><span class="example-io">1</span></p>
<p><strong>解释:</strong></p>
<p><code>nums</code> 的唯一性数组为 <code>[distinct(nums[0..0]), distinct(nums[1..1]), distinct(nums[2..2]), distinct(nums[0..1]), distinct(nums[1..2]), distinct(nums[0..2])]</code>,即 <code>[1, 1, 1, 2, 2, 3]</code> 。唯一性数组的中位数为 1 ,因此答案是 1 。</p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">nums = [3,4,3,4,5]</span></p>
<p><strong>输出:</strong><span class="example-io">2</span></p>
<p><strong>解释:</strong></p>
<p><code>nums</code> 的唯一性数组为 <code>[1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3]</code> 。唯一性数组的中位数为 2 ,因此答案是 2 。</p>
</div>
<p><strong class="example">示例 3</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">nums = [4,3,5,4]</span></p>
<p><strong>输出:</strong><span class="example-io">2</span></p>
<p><strong>解释:</strong></p>
<p><code>nums</code> 的唯一性数组为 <code>[1, 1, 1, 1, 2, 2, 2, 3, 3, 3]</code> 。唯一性数组的中位数为 2 ,因此答案是 2 。</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= nums.length &lt;= 10<sup>5</sup></code></li>
<li><code>1 &lt;= nums[i] &lt;= 10<sup>5</sup></code></li>
</ul>

View File

@@ -0,0 +1,61 @@
<p>给你 3 个正整数&nbsp;<code>zero</code>&nbsp;<code>one</code>&nbsp;&nbsp;<code>limit</code>&nbsp;</p>
<p>一个 <span data-keyword="binary-array">二进制数组</span> <code>arr</code> 如果满足以下条件,那么我们称它是 <strong>稳定的</strong> </p>
<ul>
<li>0 在&nbsp;<code>arr</code>&nbsp;中出现次数 <strong>恰好</strong>&nbsp;<strong>&nbsp;</strong><code>zero</code>&nbsp;</li>
<li>1 在&nbsp;<code>arr</code>&nbsp;中出现次数 <strong>恰好</strong>&nbsp;&nbsp;<code>one</code>&nbsp;</li>
<li><code>arr</code> 中每个长度超过 <code>limit</code>&nbsp;<span data-keyword="subarray-nonempty">子数组</span><strong>同时</strong> 包含 0 和 1 。</li>
</ul>
<p>请你返回 <strong>稳定</strong>&nbsp;二进制数组的 <em></em> 数目。</p>
<p>由于答案可能很大,将它对&nbsp;<code>10<sup>9</sup> + 7</code>&nbsp;<b>取余</b>&nbsp;后返回。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>zero = 1, one = 1, limit = 2</span></p>
<p><span class="example-io"><b>输出:</b>2</span></p>
<p><strong>解释:</strong></p>
<p>两个稳定的二进制数组为&nbsp;<code>[1,0]</code>&nbsp;<code>[0,1]</code>&nbsp;,两个数组都有一个 0 和一个 1 ,且没有子数组长度大于 2 。</p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">zero = 1, one = 2, limit = 1</span></p>
<p><span class="example-io"><b>输出:</b>1</span></p>
<p><strong>解释:</strong></p>
<p>唯一稳定的二进制数组是&nbsp;<code>[1,0,1]</code>&nbsp;</p>
<p>二进制数组&nbsp;<code>[1,1,0]</code>&nbsp;<code>[0,1,1]</code>&nbsp;都有长度为 2 且元素全都相同的子数组,所以它们不稳定。</p>
</div>
<p><strong class="example">示例 3</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>zero = 3, one = 3, limit = 2</span></p>
<p><span class="example-io"><b>输出:</b>14</span></p>
<p><strong>解释:</strong></p>
<p>所有稳定的二进制数组包括&nbsp;<code>[0,0,1,0,1,1]</code>&nbsp;<code>[0,0,1,1,0,1]</code>&nbsp;<code>[0,1,0,0,1,1]</code>&nbsp;<code>[0,1,0,1,0,1]</code>&nbsp;<code>[0,1,0,1,1,0]</code>&nbsp;<code>[0,1,1,0,0,1]</code>&nbsp;<code>[0,1,1,0,1,0]</code>&nbsp;<code>[1,0,0,1,0,1]</code>&nbsp;<code>[1,0,0,1,1,0]</code>&nbsp;<code>[1,0,1,0,0,1]</code>&nbsp;<code>[1,0,1,0,1,0]</code>&nbsp;<code>[1,0,1,1,0,0]</code>&nbsp;<code>[1,1,0,0,1,0]</code>&nbsp;&nbsp;<code>[1,1,0,1,0,0]</code>&nbsp;</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= zero, one, limit &lt;= 200</code></li>
</ul>

View File

@@ -0,0 +1,61 @@
<p>给你 3 个正整数&nbsp;<code>zero</code>&nbsp;<code>one</code>&nbsp;&nbsp;<code>limit</code>&nbsp;</p>
<p>一个 <span data-keyword="binary-array">二进制数组</span> <code>arr</code> 如果满足以下条件,那么我们称它是 <strong>稳定的</strong> </p>
<ul>
<li>0 在&nbsp;<code>arr</code>&nbsp;中出现次数 <strong>恰好</strong>&nbsp;<strong>&nbsp;</strong><code>zero</code>&nbsp;</li>
<li>1 在&nbsp;<code>arr</code>&nbsp;中出现次数 <strong>恰好</strong>&nbsp;&nbsp;<code>one</code>&nbsp;</li>
<li><code>arr</code> 中每个长度超过 <code>limit</code>&nbsp;<span data-keyword="subarray-nonempty">子数组</span><strong>同时</strong> 包含 0 和 1 。</li>
</ul>
<p>请你返回 <strong>稳定</strong>&nbsp;二进制数组的 <em></em> 数目。</p>
<p>由于答案可能很大,将它对&nbsp;<code>10<sup>9</sup> + 7</code>&nbsp;<b>取余</b>&nbsp;后返回。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>zero = 1, one = 1, limit = 2</span></p>
<p><span class="example-io"><b>输出:</b>2</span></p>
<p><strong>解释:</strong></p>
<p>两个稳定的二进制数组为&nbsp;<code>[1,0]</code>&nbsp;<code>[0,1]</code>&nbsp;,两个数组都有一个 0 和一个 1 ,且没有子数组长度大于 2 。</p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">zero = 1, one = 2, limit = 1</span></p>
<p><span class="example-io"><b>输出:</b>1</span></p>
<p><strong>解释:</strong></p>
<p>唯一稳定的二进制数组是&nbsp;<code>[1,0,1]</code>&nbsp;</p>
<p>二进制数组&nbsp;<code>[1,1,0]</code>&nbsp;<code>[0,1,1]</code>&nbsp;都有长度为 2 且元素全都相同的子数组,所以它们不稳定。</p>
</div>
<p><strong class="example">示例 3</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>zero = 3, one = 3, limit = 2</span></p>
<p><span class="example-io"><b>输出:</b>14</span></p>
<p><strong>解释:</strong></p>
<p>所有稳定的二进制数组包括&nbsp;<code>[0,0,1,0,1,1]</code>&nbsp;<code>[0,0,1,1,0,1]</code>&nbsp;<code>[0,1,0,0,1,1]</code>&nbsp;<code>[0,1,0,1,0,1]</code>&nbsp;<code>[0,1,0,1,1,0]</code>&nbsp;<code>[0,1,1,0,0,1]</code>&nbsp;<code>[0,1,1,0,1,0]</code>&nbsp;<code>[1,0,0,1,0,1]</code>&nbsp;<code>[1,0,0,1,1,0]</code>&nbsp;<code>[1,0,1,0,0,1]</code>&nbsp;<code>[1,0,1,0,1,0]</code>&nbsp;<code>[1,0,1,1,0,0]</code>&nbsp;<code>[1,1,0,0,1,0]</code>&nbsp;&nbsp;<code>[1,1,0,1,0,0]</code>&nbsp;</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= zero, one, limit &lt;= 1000</code></li>
</ul>

View File

@@ -0,0 +1,37 @@
<p>给你两个整数 <code>n</code><code>x</code> 。你需要构造一个长度为 <code>n</code><strong>正整数 </strong>数组 <code>nums</code> ,对于所有 <code>0 &lt;= i &lt; n - 1</code> ,满足 <code>nums[i + 1]</code><strong> 大于 </strong><code>nums[i]</code> ,并且数组 <code>nums</code> 中所有元素的按位 <code>AND</code> 运算结果为 <code>x</code></p>
<p>返回 <code>nums[n - 1]</code> 可能的<strong> 最小 </strong>值。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">n = 3, x = 4</span></p>
<p><strong>输出:</strong><span class="example-io">6</span></p>
<p><strong>解释:</strong></p>
<p>数组 <code>nums</code> 可以是 <code>[4,5,6]</code> ,最后一个元素为 <code>6</code></p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">n = 2, x = 7</span></p>
<p><strong>输出:</strong><span class="example-io">15</span></p>
<p><strong>解释:</strong></p>
<p>数组 <code>nums</code> 可以是 <code>[7,15]</code> ,最后一个元素为 <code>15</code></p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= n, x &lt;= 10<sup>8</sup></code></li>
</ul>

View File

@@ -0,0 +1,40 @@
<p>给你一个字符串 <code>s</code>,表示一个 12 小时制的时间格式,其中一些数字(可能没有)被 <code>"?"</code> 替换。</p>
<p>12 小时制时间格式为 <code>"HH:MM"</code> ,其中 <code>HH</code> 的取值范围为 <code>00</code><code>11</code><code>MM</code> 的取值范围为 <code>00</code><code>59</code>。最早的时间为 <code>00:00</code>,最晚的时间为 <code>11:59</code></p>
<p>你需要将 <code>s</code> 中的<strong> 所有</strong> <code>"?"</code> 字符替换为数字,使得结果字符串代表的时间是一个<strong> 有效 </strong>的 12 小时制时间,并且是可能的 <strong>最晚 </strong>时间。</p>
<p>返回结果字符串。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div class="example-block">
<p><strong>输入:</strong> <span class="example-io">s = "1?:?4"</span></p>
<p><strong>输出:</strong> <span class="example-io">"11:54"</span></p>
<p><strong>解释:</strong> 通过替换 <code>"?"</code> 字符可以得到的最晚12小时制时间是 <code>"11:54"</code></p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block">
<p><strong>输入:</strong> <span class="example-io">s = "0?:5?"</span></p>
<p><strong>输出:</strong> <span class="example-io">"09:59"</span></p>
<p><strong>解释:</strong> 通过替换 <code>"?"</code> 字符可以得到的最晚12小时制时间是 <code>"09:59"</code></p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>s.length == 5</code></li>
<li><code>s[2]</code> 是字符 <code>":"</code></li>
<li><code>s[2]</code> 外,其他字符都是数字或 <code>"?"</code></li>
<li>输入保证在替换 <code>"?"</code> 字符后至少存在一个介于 <code>"00:00"</code><code>"11:59"</code> 之间的时间。</li>
</ul>

View File

@@ -0,0 +1,57 @@
<p>给你一个 <code>n</code>&nbsp;个节点的无向带权图,节点编号为 <code>0</code>&nbsp;<code>n - 1</code>&nbsp;。图中总共有 <code>m</code>&nbsp;条边,用二维数组&nbsp;<code>edges</code>&nbsp;表示,其中&nbsp;<code>edges[i] = [a<sub>i</sub>, b<sub>i</sub>, w<sub>i</sub>]</code>&nbsp;表示节点 <code>a<sub>i</sub></code>&nbsp;<code>b<sub>i</sub></code>&nbsp;之间有一条边权为&nbsp;<code>w<sub>i</sub></code>&nbsp;的边。</p>
<p>对于节点 <code>0</code>&nbsp;为出发点,节点 <code>n - 1</code>&nbsp;为结束点的所有最短路,你需要返回一个长度为 <code>m</code>&nbsp;<strong>boolean</strong>&nbsp;数组&nbsp;<code>answer</code>&nbsp;,如果&nbsp;<code>edges[i]</code>&nbsp;<strong>至少</strong>&nbsp;在其中一条最短路上,那么&nbsp;<code>answer[i]</code>&nbsp;&nbsp;<code>true</code>&nbsp;,否则&nbsp;<code>answer[i]</code>&nbsp;&nbsp;<code>false</code>&nbsp;</p>
<p>请你返回数组&nbsp;<code>answer</code>&nbsp;</p>
<p><b>注意</b>,图可能不连通。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/03/05/graph35drawio-1.png" style="height: 129px; width: 250px;" /></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>n = 6, edges = [[0,1,4],[0,2,1],[1,3,2],[1,4,3],[1,5,1],[2,3,1],[3,5,3],[4,5,2]]</span></p>
<p><span class="example-io"><b>输出:</b>[true,true,true,false,true,true,true,false]</span></p>
<p><strong>解释:</strong></p>
<p>以下为节点 0 出发到达节点 5 的 <strong>所有</strong>&nbsp;最短路:</p>
<ul>
<li>路径&nbsp;<code>0 -&gt; 1 -&gt; 5</code>&nbsp;:边权和为&nbsp;<code>4 + 1 = 5</code>&nbsp;</li>
<li>路径&nbsp;<code>0 -&gt; 2 -&gt; 3 -&gt; 5</code>&nbsp;:边权和为&nbsp;<code>1 + 1 + 3 = 5</code>&nbsp;</li>
<li>路径&nbsp;<code>0 -&gt; 2 -&gt; 3 -&gt; 1 -&gt; 5</code>&nbsp;:边权和为&nbsp;<code>1 + 1 + 2 + 1 = 5</code>&nbsp;</li>
</ul>
</div>
<p><strong class="example">示例 2</strong></p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/03/05/graphhhh.png" style="width: 185px; height: 136px;" /></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>n = 4, edges = [[2,0,1],[0,1,1],[0,3,4],[3,2,2]]</span></p>
<p><span class="example-io"><b>输出:</b>[true,false,false,true]</span></p>
<p><strong>解释:</strong></p>
<p>只有一条从节点 0 出发到达节点 3 的最短路&nbsp;<code>0 -&gt; 2 -&gt; 3</code>&nbsp;,边权和为&nbsp;<code>1 + 2 = 3</code>&nbsp;</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>2 &lt;= n &lt;= 5 * 10<sup>4</sup></code></li>
<li><code>m == edges.length</code></li>
<li><code>1 &lt;= m &lt;= min(5 * 10<sup>4</sup>, n * (n - 1) / 2)</code></li>
<li><code>0 &lt;= a<sub>i</sub>, b<sub>i</sub> &lt; n</code></li>
<li><code>a<sub>i</sub> != b<sub>i</sub></code></li>
<li><code>1 &lt;= w<sub>i</sub> &lt;= 10<sup>5</sup></code></li>
<li>图中没有重边。</li>
</ul>

View File

@@ -0,0 +1,130 @@
<p>给你一个二维 <code>3 x 3</code>&nbsp;的矩阵&nbsp;<code>grid</code>&nbsp;,每个格子都是一个字符,要么是&nbsp;<code>'B'</code>&nbsp;,要么是&nbsp;<code>'W'</code>&nbsp;。字符&nbsp;<code>'W'</code>&nbsp;表示白色,字符&nbsp;<code>'B'</code>&nbsp;表示黑色。</p>
<p>你的任务是改变 <strong>至多一个</strong>&nbsp;格子的颜色,使得矩阵中存在一个 <code>2 x 2</code>&nbsp;颜色完全相同的正方形。<!-- notionvc: adf957e1-fa0f-40e5-9a2e-933b95e276a7 --></p>
<p>如果可以得到一个相同颜色的 <code>2 x 2</code>&nbsp;正方形,那么返回 <code>true</code>&nbsp;,否则返回 <code>false</code>&nbsp;</p>
<p>&nbsp;</p>
<style type="text/css">.grid-container {
display: grid;
grid-template-columns: 30px 30px 30px;
padding: 10px;
}
.grid-item {
background-color: black;
border: 1px solid gray;
height: 30px;
font-size: 30px;
text-align: center;
}
.grid-item-white {
background-color: white;
}
</style>
<style class="darkreader darkreader--sync" media="screen" type="text/css">
</style>
<p><strong class="example">示例 1</strong></p>
<div class="grid-container">
<div class="grid-item">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
<div class="grid-item">&nbsp;</div>
<div class="grid-item">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
<div class="grid-item">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
<div class="grid-item">&nbsp;</div>
</div>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>grid = [["B","W","B"],["B","W","W"],["B","W","B"]]</span></p>
<p><span class="example-io"><b>输出:</b>true</span></p>
<p><strong>解释:</strong></p>
<p>修改&nbsp;<code>grid[0][2]</code> 的颜色,可以满足要求。</p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="grid-container">
<div class="grid-item">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
<div class="grid-item">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
<div class="grid-item">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
<div class="grid-item">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
<div class="grid-item">&nbsp;</div>
</div>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>grid = [["B","W","B"],["W","B","W"],["B","W","B"]]</span></p>
<p><span class="example-io"><b>输出:</b>false</span></p>
<p><strong>解释:</strong></p>
<p>只改变一个格子颜色无法满足要求。</p>
</div>
<p><strong class="example">示例 3</strong></p>
<div class="grid-container">
<div class="grid-item">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
<div class="grid-item">&nbsp;</div>
<div class="grid-item">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
<div class="grid-item">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
<div class="grid-item grid-item-white">&nbsp;</div>
</div>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>grid = [["B","W","B"],["B","W","W"],["B","W","W"]]</span></p>
<p><span class="example-io"><b>输出:</b>true</span></p>
<p><strong>解释:</strong></p>
<p><code>grid</code>&nbsp;已经包含一个&nbsp;<code>2 x 2</code>&nbsp;颜色相同的正方形了。<!-- notionvc: 9a8b2d3d-1e73-457a-abe0-c16af51ad5c2 --></p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>grid.length == 3</code></li>
<li><code>grid[i].length == 3</code></li>
<li><code>grid[i][j]</code>&nbsp;要么是&nbsp;<code>'W'</code>&nbsp;,要么是&nbsp;<code>'B'</code></li>
</ul>

View File

@@ -0,0 +1,166 @@
<p>给你一个二维 boolean 矩阵&nbsp;<code>grid</code>&nbsp;</p>
<p>请你返回使用 <code>grid</code>&nbsp;中的 3 个元素可以构建的 <strong>直角三角形</strong> 数目,且满足 3 个元素值 <strong></strong>&nbsp;为 1 。</p>
<p><b>注意:</b></p>
<ul>
<li>如果 <code>grid</code>&nbsp;中 3 个元素满足:一个元素与另一个元素在 <strong>同一行</strong>,同时与第三个元素在 <strong>同一列</strong>&nbsp;,那么这 3 个元素称为一个 <strong>直角三角形</strong>&nbsp;。这 3 个元素互相之间不需要相邻。</li>
</ul>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div style="display:flex; gap: 12px;">
<table border="1" cellspacing="3" style="border-collapse: separate; text-align: center;">
<tbody>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid red; --darkreader-inline-border-top: #b30000; --darkreader-inline-border-right: #b30000; --darkreader-inline-border-bottom: #b30000; --darkreader-inline-border-left: #b30000;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
</tr>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid red; --darkreader-inline-border-top: #b30000; --darkreader-inline-border-right: #b30000; --darkreader-inline-border-bottom: #b30000; --darkreader-inline-border-left: #b30000;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid red; --darkreader-inline-border-top: #b30000; --darkreader-inline-border-right: #b30000; --darkreader-inline-border-bottom: #b30000; --darkreader-inline-border-left: #b30000;">1</td>
</tr>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="3" style="border-collapse: separate; text-align: center;">
<tbody>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
</tr>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid red; --darkreader-inline-border-top: #b30000; --darkreader-inline-border-right: #b30000; --darkreader-inline-border-bottom: #b30000; --darkreader-inline-border-left: #b30000;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid red; --darkreader-inline-border-top: #b30000; --darkreader-inline-border-right: #b30000; --darkreader-inline-border-bottom: #b30000; --darkreader-inline-border-left: #b30000;">1</td>
</tr>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid red; --darkreader-inline-border-top: #b30000; --darkreader-inline-border-right: #b30000; --darkreader-inline-border-bottom: #b30000; --darkreader-inline-border-left: #b30000;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
</tr>
</tbody>
</table>
</div>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>grid = [[0,1,0],[0,1,1],[0,1,0]]</span></p>
<p><span class="example-io"><b>输出:</b>2</span></p>
<p><b>解释:</b></p>
<p>有 2 个直角三角形。</p>
</div>
<p><strong class="example">示例 2</strong></p>
<div style="display:flex; gap: 12px;">
<table border="1" cellspacing="3" style="border-collapse: separate; text-align: center;">
<tbody>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
</tr>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">1</td>
</tr>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
</tr>
</tbody>
</table>
</div>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>grid = [[1,0,0,0],[0,1,0,1],[1,0,0,0]]</span></p>
<p><span class="example-io"><b>输出:</b>0</span></p>
<p><strong>解释:</strong></p>
<p>没有直角三角形。</p>
</div>
<p><strong class="example">示例 3</strong></p>
<div style="display:flex; gap: 12px;">
<table border="1" cellspacing="3" style="border-collapse: separate; text-align: center;">
<tbody>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid red; --darkreader-inline-border-top: #b30000; --darkreader-inline-border-right: #b30000; --darkreader-inline-border-bottom: #b30000; --darkreader-inline-border-left: #b30000;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid red; --darkreader-inline-border-top: #b30000; --darkreader-inline-border-right: #b30000; --darkreader-inline-border-bottom: #b30000; --darkreader-inline-border-left: #b30000;">1</td>
</tr>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid red; --darkreader-inline-border-top: #b30000; --darkreader-inline-border-right: #b30000; --darkreader-inline-border-bottom: #b30000; --darkreader-inline-border-left: #b30000;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
</tr>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="3" style="border-collapse: separate; text-align: center;">
<tbody>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid red; --darkreader-inline-border-top: #b30000; --darkreader-inline-border-right: #b30000; --darkreader-inline-border-bottom: #b30000; --darkreader-inline-border-left: #b30000;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid red; --darkreader-inline-border-top: #b30000; --darkreader-inline-border-right: #b30000; --darkreader-inline-border-bottom: #b30000; --darkreader-inline-border-left: #b30000;">1</td>
</tr>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
</tr>
<tr>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid red; --darkreader-inline-border-top: #b30000; --darkreader-inline-border-right: #b30000; --darkreader-inline-border-bottom: #b30000; --darkreader-inline-border-left: #b30000;">1</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
<td data-darkreader-inline-border-bottom="" data-darkreader-inline-border-left="" data-darkreader-inline-border-right="" data-darkreader-inline-border-top="" style="padding: 5px 10px; border: 1px solid black; --darkreader-inline-border-top: #8c8273; --darkreader-inline-border-right: #8c8273; --darkreader-inline-border-bottom: #8c8273; --darkreader-inline-border-left: #8c8273;">0</td>
</tr>
</tbody>
</table>
</div>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>grid = [[1,0,1],[1,0,0],[1,0,0]]</span></p>
<p><strong>输出:</strong>2</p>
<p><strong>解释:</strong></p>
<p>有两个直角三角形。</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= grid.length &lt;= 1000</code></li>
<li><code>1 &lt;= grid[i].length &lt;= 1000</code></li>
<li><code>0 &lt;= grid[i][j] &lt;= 1</code></li>
</ul>

View File

@@ -0,0 +1,50 @@
<p>给你一个字符串 <code>word</code>。如果 <code>word</code> 中同时存在某个字母的小写形式和大写形式,则称这个字母为 <strong>特殊字母</strong></p>
<p>返回 <code>word</code><strong> </strong><strong>特殊字母 </strong>的数量。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1:</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">word = "aaAbcBC"</span></p>
<p><strong>输出:</strong><span class="example-io">3</span></p>
<p><strong>解释:</strong></p>
<p><code>word</code> 中的特殊字母是 <code>'a'</code><code>'b'</code><code>'c'</code></p>
</div>
<p><strong class="example">示例 2:</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">word = "abc"</span></p>
<p><strong>输出:</strong><span class="example-io">0</span></p>
<p><strong>解释:</strong></p>
<p><code>word</code> 中不存在大小写形式同时出现的字母。</p>
</div>
<p><strong class="example">示例 3:</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">word = "abBCab"</span></p>
<p><strong>输出:</strong>1</p>
<p><strong>解释:</strong></p>
<p><code>word</code> 中唯一的特殊字母是 <code>'b'</code></p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= word.length &lt;= 50</code></li>
<li><code>word</code> 仅由小写和大写英文字母组成。</li>
</ul>

View File

@@ -0,0 +1,50 @@
<p>给你一个字符串 <code>word</code>。如果 <code>word</code> 中同时出现某个字母 <code>c</code> 的小写形式和大写形式,并且<strong> 每个 </strong>小写形式的 <code>c</code> 都出现在第一个大写形式的 <code>c</code> 之前,则称字母 <code>c</code> 是一个 <strong>特殊字母</strong></p>
<p>返回 <code>word</code><strong>特殊字母</strong> 的数量。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1:</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">word = "aaAbcBC"</span></p>
<p><strong>输出:</strong><span class="example-io">3</span></p>
<p><strong>解释:</strong></p>
<p>特殊字母是 <code>'a'</code><code>'b'</code><code>'c'</code></p>
</div>
<p><strong class="example">示例 2:</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">word = "abc"</span></p>
<p><strong>输出:</strong><span class="example-io">0</span></p>
<p><strong>解释:</strong></p>
<p><code>word</code> 中不存在特殊字母。</p>
</div>
<p><strong class="example">示例 3:</strong></p>
<div class="example-block">
<p><strong>输入:</strong><span class="example-io">word = "AbBCab"</span></p>
<p><strong>输出:</strong><span class="example-io">0</span></p>
<p><strong>解释:</strong></p>
<p><code>word</code> 中不存在特殊字母。</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= word.length &lt;= 2 * 10<sup>5</sup></code></li>
<li><code>word</code> 仅由小写和大写英文字母组成。</li>
</ul>

View File

@@ -0,0 +1,82 @@
<p>给你一个二维整数数组&nbsp;<code>point</code>&nbsp;,其中&nbsp;<code>points[i] = [x<sub>i</sub>, y<sub>i</sub>]</code>&nbsp;表示二维平面内的一个点。同时给你一个整数&nbsp;<code>w</code>&nbsp;。你需要用矩形&nbsp;<strong>覆盖所有</strong>&nbsp;点。</p>
<p>每个矩形的左下角在某个点&nbsp;<code>(x<sub>1</sub>, 0)</code>&nbsp;处,且右上角在某个点&nbsp;<code>(x<sub>2</sub>, y<sub>2</sub>)</code>&nbsp;处,其中&nbsp;<code>x<sub>1</sub> &lt;= x<sub>2</sub></code>&nbsp;&nbsp;<code>y<sub>2</sub> &gt;= 0</code>&nbsp;,同时对于每个矩形都&nbsp;<strong>必须</strong>&nbsp;满足&nbsp;<code>x<sub>2</sub> - x<sub>1</sub> &lt;= w</code>&nbsp;</p>
<p>如果一个点在矩形内或者在边上,我们说这个点被矩形覆盖了。</p>
<p>请你在确保每个点都 <strong>至少</strong>&nbsp;被一个矩形覆盖的前提下,<strong>最少</strong>&nbsp;需要多少个矩形。</p>
<p><strong>注意:</strong>一个点可以被多个矩形覆盖。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/03/04/screenshot-from-2024-03-04-20-33-05.png" style="width: 205px; height: 300px;" /></p>
<div class="example-block" style="border-color: var(--border-tertiary); border-left-width: 2px; color: var(--text-secondary); margin-bottom: 1rem; margin-top: 1rem; overflow: visible; padding-left: 1rem;">
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输入:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">points = [[2,1],[1,0],[1,4],[1,8],[3,5],[4,6]], w = 1</span></p>
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输出:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">2</span></p>
<p style="font-size: 0.875rem;"><strong>解释:</strong></p>
<p style="font-size: 0.875rem;">上图展示了一种可行的矩形放置方案:</p>
<ul style="font-size: 0.875rem;">
<li>一个矩形的左下角在&nbsp;<code>(1, 0)</code>&nbsp;,右上角在&nbsp;<code>(2, 8)</code>&nbsp;</li>
<li>一个矩形的左下角在&nbsp;<code>(3, 0)</code>&nbsp;,右上角在&nbsp;<code>(4, 8)</code>&nbsp;</li>
</ul>
</div>
<p><strong class="example">示例 2</strong></p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/03/04/screenshot-from-2024-03-04-18-59-12.png" style="width: 260px; height: 250px;" /></p>
<div class="example-block" style="border-color: var(--border-tertiary); border-left-width: 2px; color: var(--text-secondary); margin-bottom: 1rem; margin-top: 1rem; overflow: visible; padding-left: 1rem;">
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输入:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">points = [[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6]], w = 2</span></p>
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输出:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">3</span></p>
<p style="font-size: 0.875rem;"><b>解释:</b></p>
<p style="font-size: 0.875rem;">上图展示了一种可行的矩形放置方案:</p>
<ul style="font-size: 0.875rem;">
<li>一个矩形的左下角在&nbsp;<code>(0, 0)</code>&nbsp;,右上角在&nbsp;<code>(2, 2)</code>&nbsp;</li>
<li>一个矩形的左下角在&nbsp;<code>(3, 0)</code>&nbsp;,右上角在&nbsp;<code>(5, 5)</code>&nbsp;</li>
<li>一个矩形的左下角在&nbsp;<code>(6, 0)</code>&nbsp;,右上角在&nbsp;<code>(6, 6)</code>&nbsp;</li>
</ul>
</div>
<p><strong class="example">示例 3</strong></p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2024/03/04/screenshot-from-2024-03-04-20-24-03.png" style="height: 150px; width: 127px;" /></p>
<div class="example-block" style="border-color: var(--border-tertiary); border-left-width: 2px; color: var(--text-secondary); margin-bottom: 1rem; margin-top: 1rem; overflow: visible; padding-left: 1rem;">
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输入:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">points = [[2,3],[1,2]], w = 0</span></p>
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输出:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">2</span></p>
<p style="font-size: 0.875rem;"><strong>解释:</strong></p>
<p style="font-size: 0.875rem;">上图展示了一种可行的矩形放置方案:</p>
<ul style="font-size: 0.875rem;">
<li>一个矩形的左下角在&nbsp;<code>(1, 0)</code>&nbsp;,右上角在&nbsp;<code>(1, 2)</code>&nbsp;</li>
<li>一个矩形的左下角在&nbsp;<code>(2, 0)</code>&nbsp;,右上角在&nbsp;<code>(2, 3)</code>&nbsp;</li>
</ul>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= points.length &lt;= 10<sup>5</sup></code></li>
<li><code>points[i].length == 2</code></li>
<li><code>0 &lt;= x<sub>i</sub> == points[i][0] &lt;= 10<sup>9</sup></code></li>
<li><code>0 &lt;= y<sub>i</sub> == points[i][1] &lt;= 10<sup>9</sup></code></li>
<li><code>0 &lt;= w &lt;= 10<sup>9</sup></code></li>
<li>所有点坐标&nbsp;<code>(x<sub>i</sub>, y<sub>i</sub>)</code>&nbsp;互不相同。</li>
</ul>

View File

@@ -0,0 +1,75 @@
<p>给你一个二维数组 <code>edges</code>&nbsp;表示一个 <code>n</code>&nbsp;个点的无向图,其中&nbsp;<code>edges[i] = [u<sub>i</sub>, v<sub>i</sub>, length<sub>i</sub>]</code>&nbsp;表示节点&nbsp;<code>u<sub>i</sub></code> 和节点&nbsp;<code>v<sub>i</sub></code>&nbsp;之间有一条需要&nbsp;<code>length<sub>i</sub></code>&nbsp;单位时间通过的无向边。</p>
<p>同时给你一个数组&nbsp;<code>disappear</code>&nbsp;,其中&nbsp;<code>disappear[i]</code>&nbsp;表示节点 <code>i</code>&nbsp;从图中消失的时间点,在那一刻及以后,你无法再访问这个节点。</p>
<p><strong>注意</strong>,图有可能一开始是不连通的,两个节点之间也可能有多条边。</p>
<p>请你返回数组&nbsp;<code>answer</code>&nbsp;<code>answer[i]</code>&nbsp;表示从节点 <code>0</code>&nbsp;到节点 <code>i</code>&nbsp;需要的 <strong>最少</strong>&nbsp;单位时间。如果从节点 <code>0</code>&nbsp;出发 <strong>无法</strong> 到达节点 <code>i</code>&nbsp;,那么 <code>answer[i]</code>&nbsp;<code>-1</code>&nbsp;</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<p><img 10px="" alt="" padding:="" src="https://assets.leetcode.com/uploads/2024/03/09/example1.png" style="width: 350px; height: 210px;" /></p>
<div class="example-block" style="border-color: var(--border-tertiary); border-left-width: 2px; color: var(--text-secondary); margin-bottom: 1rem; margin-top: 1rem; overflow: visible; padding-left: 1rem;">
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输入:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">n = 3, edges = [[0,1,2],[1,2,1],[0,2,4]], disappear = [1,1,5]</span></p>
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输出:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">[0,-1,4]</span></p>
<p style="font-size: 0.875rem;"><strong>解释:</strong></p>
<p style="font-size: 0.875rem;">我们从节点 0 出发,目的是用最少的时间在其他节点消失之前到达它们。</p>
<ul style="font-size: 0.875rem;">
<li>对于节点 0 ,我们不需要任何时间,因为它就是我们的起点。</li>
<li>对于节点 1 ,我们需要至少 2 单位时间,通过&nbsp;<code>edges[0]</code>&nbsp;到达。但当我们到达的时候,它已经消失了,所以我们无法到达它。</li>
<li>对于节点 2 ,我们需要至少 4 单位时间,通过&nbsp;<code>edges[2]</code>&nbsp;到达。</li>
</ul>
</div>
<p><strong class="example">示例 2</strong></p>
<p><img 10px="" alt="" padding:="" src="https://assets.leetcode.com/uploads/2024/03/09/example2.png" style="width: 350px; height: 210px;" /></p>
<div class="example-block" style="border-color: var(--border-tertiary); border-left-width: 2px; color: var(--text-secondary); margin-bottom: 1rem; margin-top: 1rem; overflow: visible; padding-left: 1rem;">
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输入:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">n = 3, edges = [[0,1,2],[1,2,1],[0,2,4]], disappear = [1,3,5]</span></p>
<p style=""><span class="example-io" style="font-size: 8.75px;"><b>输出:</b></span><span class="example-io" style="font-size: 0.85rem; font-family: Menlo, sans-serif;">[0,2,3]</span></p>
<p style="font-size: 0.875rem;"><strong>解释:</strong></p>
<p style="font-size: 0.875rem;">我们从节点 0 出发,目的是用最少的时间在其他节点消失之前到达它们。</p>
<ul style="font-size: 0.875rem;">
<li>对于节点 0 ,我们不需要任何时间,因为它就是我们的起点。</li>
<li>对于节点 1 ,我们需要至少 2 单位时间,通过&nbsp;<code>edges[0]</code>&nbsp;到达。</li>
<li>对于节点 2&nbsp;,我们需要至少 3&nbsp;单位时间,通过&nbsp;<code>edges[0]</code>&nbsp;<code>edges[1]</code>&nbsp;到达。</li>
</ul>
</div>
<p><strong class="example">示例 3</strong></p>
<div class="example-block" style="border-color: var(--border-tertiary); border-left-width: 2px; color: var(--text-secondary); margin-bottom: 1rem; margin-top: 1rem; overflow: visible; padding-left: 1rem;">
<p><span class="example-io"><b>输入:</b>n = 2, edges = [[0,1,1]], disappear = [1,1]</span></p>
<p><span class="example-io"><b>输出:</b>[0,-1]</span></p>
<p><strong>解释:</strong></p>
<p>当我们到达节点 1 的时候,它恰好消失,所以我们无法到达节点 1 。</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= n &lt;= 5 * 10<sup>4</sup></code></li>
<li><code>0 &lt;= edges.length &lt;= 10<sup>5</sup></code></li>
<li><code>edges[i] == [u<sub>i</sub>, v<sub>i</sub>, length<sub>i</sub>]</code></li>
<li><code>0 &lt;= u<sub>i</sub>, v<sub>i</sub> &lt;= n - 1</code></li>
<li><code>1 &lt;= length<sub>i</sub> &lt;= 10<sup>5</sup></code></li>
<li><code>disappear.length == n</code></li>
<li><code>1 &lt;= disappear[i] &lt;= 10<sup>5</sup></code></li>
</ul>

View File

@@ -0,0 +1,35 @@
<p>给你一个整数数组 <code>nums</code></p>
<p>返回两个(不一定不同的)质数在 <code>nums</code>&nbsp;<strong>下标</strong><strong>最大距离</strong></p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div class="example-block">
<p><strong>输入:</strong> <span class="example-io">nums = [4,2,9,5,3]</span></p>
<p><strong>输出:</strong> <span class="example-io">3</span></p>
<p><strong>解释:</strong> <code>nums[1]</code><code>nums[3]</code><code>nums[4]</code> 是质数。因此答案是 <code>|4 - 1| = 3</code></p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block">
<p><strong>输入:</strong> <span class="example-io">nums = [4,8,2,8]</span></p>
<p><strong>输出:</strong> <span class="example-io">0</span></p>
<p><strong>解释:</strong> <code>nums[2]</code> 是质数。因为只有一个质数,所以答案是 <code>|2 - 2| = 0</code></p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= nums.length &lt;= 3 * 10<sup>5</sup></code></li>
<li><code>1 &lt;= nums[i] &lt;= 100</code></li>
<li>输入保证 <code>nums</code> 中至少有一个质数。</li>
</ul>

View File

@@ -0,0 +1,74 @@
<p>给你一个 <strong></strong>&nbsp;整数数组&nbsp;<code>nums</code>&nbsp;</p>
<p>请你求出&nbsp;<code>nums</code>&nbsp;中有多少个子数组,满足子数组中&nbsp;<strong>第一个</strong>&nbsp;<strong>最后一个</strong>&nbsp;元素都是这个子数组中的 <strong>最大</strong>&nbsp;值。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>nums = [1,4,3,3,2]</span></p>
<p><span class="example-io"><b>输出:</b>6</span></p>
<p><strong>解释:</strong></p>
<p>总共有 6 个子数组满足第一个元素和最后一个元素都是子数组中的最大值:</p>
<ul>
<li>子数组&nbsp;<code>[<u><em><strong>1</strong></em></u>,4,3,3,2]</code>&nbsp;,最大元素为 1 ,第一个和最后一个元素都是 1 。</li>
<li>子数组&nbsp;<code>[1,<u><em><strong>4</strong></em></u>,3,3,2]</code>&nbsp;,最大元素为 4 ,第一个和最后一个元素都是 4 。</li>
<li>子数组&nbsp;<code>[1,4,<u><em><strong>3</strong></em></u>,3,2]</code>&nbsp;,最大元素为 3 ,第一个和最后一个元素都是 3 。</li>
<li>子数组&nbsp;<code>[1,4,3,<u><em><strong>3</strong></em></u>,2]</code>&nbsp;,最大元素为 3 ,第一个和最后一个元素都是 3 。</li>
<li>子数组&nbsp;<code>[1,4,3,3,<u><em><strong>2</strong></em></u>]</code>&nbsp;,最大元素为 2 ,第一个和最后一个元素都是 2 。</li>
<li>子数组&nbsp;<code>[1,4,<u><em><strong>3,3</strong></em></u>,2]</code>&nbsp;,最大元素为 3 ,第一个和最后一个元素都是 3 。</li>
</ul>
<p>所以我们返回 6 。</p>
</div>
<p><strong class="example">示例 2</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>nums = [3,3,3]</span></p>
<p><span class="example-io"><b>输出:</b>6</span></p>
<p><strong>解释:</strong></p>
<p>总共有 6 个子数组满足第一个元素和最后一个元素都是子数组中的最大值:</p>
<ul>
<li>子数组 <code>[<u><em><strong>3</strong></em></u>,3,3]</code>&nbsp;,最大元素为 3&nbsp;,第一个和最后一个元素都是 3&nbsp;</li>
<li>子数组 <code>[3,<u><em><strong>3</strong></em></u>,3]</code>&nbsp;,最大元素为 3&nbsp;,第一个和最后一个元素都是 3&nbsp;</li>
<li>子数组 <code>[3,3,<u><em><strong>3</strong></em></u>]</code>&nbsp;,最大元素为 3&nbsp;,第一个和最后一个元素都是 3&nbsp;</li>
<li>子数组 <code>[<u><em><strong>3,3</strong></em></u>,3]</code>&nbsp;,最大元素为 3&nbsp;,第一个和最后一个元素都是 3&nbsp;</li>
<li>子数组 <code>[3,<u><em><strong>3,3</strong></em></u>]</code>&nbsp;,最大元素为 3&nbsp;,第一个和最后一个元素都是 3&nbsp;</li>
<li>子数组 <code>[<u><em><strong>3,3,3</strong></em></u>]</code>&nbsp;,最大元素为 3&nbsp;,第一个和最后一个元素都是 3&nbsp;</li>
</ul>
<p>所以我们返回 6 。</p>
</div>
<p><strong class="example">示例 3</strong></p>
<div class="example-block">
<p><span class="example-io"><b>输入:</b>nums = [1]</span></p>
<p><span class="example-io"><b>输出:</b>1</span></p>
<p><strong>解释:</strong></p>
<p><code>nums</code>&nbsp;中只有一个子数组&nbsp;<code>[<em><strong>1</strong></em>]</code>&nbsp;,最大元素为 1 ,第一个和最后一个元素都是 1 。</p>
<p>所以我们返回 1 。</p>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= nums.length &lt;= 10<sup>5</sup></code></li>
<li><code>1 &lt;= nums[i] &lt;= 10<sup>9</sup></code></li>
</ul>