mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-05 07:21:40 +08:00
update
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>nums</code> 和一个整数 <code>k</code> 。你需要执行以下操作<strong> 恰好</strong> <code>k</code> 次,最大化你的得分:</p>
|
||||
|
||||
<ol>
|
||||
<li>从 <code>nums</code> 中选择一个元素 <code>m</code> 。</li>
|
||||
<li>将选中的元素 <code>m</code> 从数组中删除。</li>
|
||||
<li>将新元素 <code>m + 1</code> 添加到数组中。</li>
|
||||
<li>你的得分增加 <code>m</code> 。</li>
|
||||
</ol>
|
||||
|
||||
<p>请你返回执行以上操作恰好 <code>k</code> 次后的最大得分。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [1,2,3,4,5], k = 3
|
||||
<b>输出:</b>18
|
||||
<b>解释:</b>我们需要从 nums 中恰好选择 3 个元素并最大化得分。
|
||||
第一次选择 5 。和为 5 ,nums = [1,2,3,4,6] 。
|
||||
第二次选择 6 。和为 6 ,nums = [1,2,3,4,7] 。
|
||||
第三次选择 7 。和为 5 + 6 + 7 = 18 ,nums = [1,2,3,4,8] 。
|
||||
所以我们返回 18 。
|
||||
18 是可以得到的最大答案。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [5,5,5], k = 2
|
||||
<b>输出:</b>11
|
||||
<b>解释:</b>我们需要从 nums 中恰好选择 2 个元素并最大化得分。
|
||||
第一次选择 5 。和为 5 ,nums = [5,5,6] 。
|
||||
第二次选择 6 。和为 6 ,nums = [5,5,7] 。
|
||||
所以我们返回 11 。
|
||||
11 是可以得到的最大答案。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 100</code></li>
|
||||
<li><code>1 <= nums[i] <= 100</code></li>
|
||||
<li><code>1 <= k <= 100</code></li>
|
||||
</ul>
|
@@ -0,0 +1,61 @@
|
||||
<p>给你两个下标从 <strong>0</strong> 开始的整数数组 <code>player1</code> 和 <code>player2</code> ,分别表示玩家 1 和玩家 2 击中的瓶数。</p>
|
||||
|
||||
<p>保龄球比赛由 <code>n</code> 轮组成,每轮的瓶数恰好为 <code>10</code> 。</p>
|
||||
|
||||
<p>假设玩家在第 <code>i</code> 轮中击中 <code>x<sub>i</sub></code> 个瓶子。玩家第 <code>i</code> 轮的价值为:</p>
|
||||
|
||||
<ul>
|
||||
<li>如果玩家在前两轮中击中了 <code>10</code> 个瓶子,则为 <code>2x<sub>i</sub></code> 。</li>
|
||||
<li>否则,为 <code>x<sub>i</sub></code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p>玩家的得分是其 <code>n</code> 轮价值的总和。</p>
|
||||
|
||||
<p>返回</p>
|
||||
|
||||
<ul>
|
||||
<li>如果玩家 1 的得分高于玩家 2 的得分,则为 <code>1</code> ;</li>
|
||||
<li>如果玩家 2 的得分高于玩家 1 的得分,则为 <code>2</code> ;</li>
|
||||
<li>如果平局,则为 <code>0</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>player1 = [4,10,7,9], player2 = [6,5,2,3]
|
||||
<strong>输出:</strong>1
|
||||
<strong>解释:</strong>player1 的得分是 4 + 10 + 2*7 + 2*9 = 46 。
|
||||
player2 的得分是 6 + 5 + 2 + 3 = 16 。
|
||||
player1 的得分高于 player2 的得分,所以 play1 在比赛中获胜,答案为 1 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>player1 = [3,5,7,6], player2 = [8,10,10,2]
|
||||
<strong>输出:</strong>2
|
||||
<strong>解释:</strong>player1 的得分是 3 + 5 + 7 + 6 = 21 。
|
||||
player2 的得分是 8 + 10 + 2*10 + 2*2 = 42 。
|
||||
player2 的得分高于 player1 的得分,所以 play2 在比赛中获胜,答案为 2 。</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>player1 = [2,3], player2 = [4,1]
|
||||
<strong>输出:</strong>0
|
||||
<strong>解释:</strong>player1 的得分是 2 + 3 = 5 。
|
||||
player2 的得分是 4 + 1 = 5 。
|
||||
player1 的得分等于 player2 的得分,所以这一场比赛平局,答案为 0 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>n == player1.length == player2.length</code></li>
|
||||
<li><code>1 <= n <= 1000</code></li>
|
||||
<li><code>0 <= player1[i], player2[i] <= 10</code></li>
|
||||
</ul>
|
@@ -0,0 +1,44 @@
|
||||
<p>给你一个数组 <code>start</code> ,其中 <code>start = [startX, startY]</code> 表示你的初始位置位于二维空间上的 <code>(startX, startY)</code> 。另给你一个数组 <code>target</code> ,其中 <code>target = [targetX, targetY]</code> 表示你的目标位置 <code>(targetX, targetY)</code> 。</p>
|
||||
|
||||
<p>从位置 <code>(x1, y1)</code> 到空间中任一其他位置 <code>(x2, y2)</code> 的代价是 <code>|x2 - x1| + |y2 - y1|</code> 。</p>
|
||||
|
||||
<p>给你一个二维数组 <code>specialRoads</code> ,表示空间中存在的一些特殊路径。其中 <code>specialRoads[i] = [x1<sub>i</sub>, y1<sub>i</sub>, x2<sub>i</sub>, y2<sub>i</sub>, cost<sub>i</sub>]</code> 表示第 <code>i</code> 条特殊路径可以从 <code>(x1<sub>i</sub>, y1<sub>i</sub>)</code> 到 <code>(x2<sub>i</sub>, y2<sub>i</sub>)</code> ,但成本等于 <code>cost<sub>i</sub></code> 。你可以使用每条特殊路径任意次数。</p>
|
||||
|
||||
<p>返回从 <code>(startX, startY)</code> 到 <code>(targetX, targetY)</code> 所需的最小代价。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>start = [1,1], target = [4,5], specialRoads = [[1,2,3,3,2],[3,4,4,5,1]]
|
||||
<strong>输出:</strong>5
|
||||
<strong>解释:</strong>从 (1,1) 到 (4,5) 的最优路径如下:
|
||||
- (1,1) -> (1,2) ,移动的代价是 |1 - 1| + |2 - 1| = 1 。
|
||||
- (1,2) -> (3,3) ,移动使用第一条特殊路径,代价是 2 。
|
||||
- (3,3) -> (3,4) ,移动的代价是 |3 - 3| + |4 - 3| = 1.
|
||||
- (3,4) -> (4,5) ,移动使用第二条特殊路径,代价是 1 。
|
||||
总代价是 1 + 2 + 1 + 1 = 5 。
|
||||
可以证明无法以小于 5 的代价完成从 (1,1) 到 (4,5) 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>start = [3,2], target = [5,7], specialRoads = [[3,2,3,4,4],[3,3,5,5,5],[3,4,5,6,6]]
|
||||
<strong>输出:</strong>7
|
||||
<strong>解释:</strong>最优路径是不使用任何特殊路径,直接以 |5 - 3| + |7 - 2| = 7 的代价从初始位置到达目标位置。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>start.length == target.length == 2</code></li>
|
||||
<li><code>1 <= startX <= targetX <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= startY <= targetY <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= specialRoads.length <= 200</code></li>
|
||||
<li><code>specialRoads[i].length == 5</code></li>
|
||||
<li><code>startX <= x1<sub>i</sub>, x2<sub>i</sub> <= targetX</code></li>
|
||||
<li><code>startY <= y1<sub>i</sub>, y2<sub>i</sub> <= targetY</code></li>
|
||||
<li><code>1 <= cost<sub>i</sub> <= 10<sup>5</sup></code></li>
|
||||
</ul>
|
@@ -0,0 +1,44 @@
|
||||
<p>如果一个字符串满足以下条件,则称其为 <strong>美丽字符串</strong> :</p>
|
||||
|
||||
<ul>
|
||||
<li>它由英语小写字母表的前 <code>k</code> 个字母组成。</li>
|
||||
<li>它不包含任何长度为 <code>2</code> 或更长的回文子字符串。</li>
|
||||
</ul>
|
||||
|
||||
<p>给你一个长度为 <code>n</code> 的美丽字符串 <code>s</code> 和一个正整数 <code>k</code> 。</p>
|
||||
|
||||
<p>请你找出并返回一个长度为 <code>n</code> 的美丽字符串,该字符串还满足:在字典序大于 <code>s</code> 的所有美丽字符串中字典序最小。如果不存在这样的字符串,则返回一个空字符串。</p>
|
||||
|
||||
<p>对于长度相同的两个字符串 <code>a</code> 和 <code>b</code> ,如果字符串 <code>a</code> 在与字符串 <code>b</code> 不同的第一个位置上的字符字典序更大,则字符串 <code>a</code> 的字典序大于字符串 <code>b</code> 。</p>
|
||||
|
||||
<ul>
|
||||
<li>例如,<code>"abcd"</code> 的字典序比 <code>"abcc"</code> 更大,因为在不同的第一个位置(第四个字符)上 <code>d</code> 的字典序大于 <code>c</code> 。</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "abcz", k = 26
|
||||
<strong>输出:</strong>"abda"
|
||||
<strong>解释:</strong>字符串 "abda" 既是美丽字符串,又满足字典序大于 "abcz" 。
|
||||
可以证明不存在字符串同时满足字典序大于 "abcz"、美丽字符串、字典序小于 "abda" 这三个条件。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>s = "dc", k = 4
|
||||
<strong>输出:</strong>""
|
||||
<strong>解释:</strong>可以证明,不存在既是美丽字符串,又字典序大于 "dc" 的字符串。</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n == s.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>4 <= k <= 26</code></li>
|
||||
<li><code>s</code> 是一个美丽字符串</li>
|
||||
</ul>
|
130
leetcode-cn/problem (Chinese)/将数组清空 [make-array-empty].html
Normal file
130
leetcode-cn/problem (Chinese)/将数组清空 [make-array-empty].html
Normal file
@@ -0,0 +1,130 @@
|
||||
<p>给你一个包含若干 <strong>互不相同</strong> 整数的数组 <code>nums</code> ,你需要执行以下操作 <strong>直到</strong><strong>数组为空</strong> :</p>
|
||||
|
||||
<ul>
|
||||
<li>如果数组中第一个元素是当前数组中的 <strong>最小值</strong> ,则删除它。</li>
|
||||
<li>否则,将第一个元素移动到数组的 <strong>末尾</strong> 。</li>
|
||||
</ul>
|
||||
|
||||
<p>请你返回需要多少个操作使<em> </em><code>nums</code><em> </em>为空。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [3,4,-1]
|
||||
<b>输出:</b>5
|
||||
</pre>
|
||||
|
||||
<table style="border: 2px solid black; border-collapse: collapse;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="border: 2px solid black; padding: 5px;">Operation</th>
|
||||
<th style="border: 2px solid black; padding: 5px;">Array</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">1</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[4, -1, 3]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">2</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[-1, 3, 4]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">3</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[3, 4]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">4</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[4]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">5</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [1,2,4,3]
|
||||
<b>输出:</b>5
|
||||
</pre>
|
||||
|
||||
<table style="border: 2px solid black; border-collapse: collapse;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="border: 2px solid black; padding: 5px;">Operation</th>
|
||||
<th style="border: 2px solid black; padding: 5px;">Array</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">1</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[2, 4, 3]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">2</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[4, 3]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">3</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[3, 4]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">4</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[4]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">5</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<b>输入:</b>nums = [1,2,3]
|
||||
<b>输出:</b>3
|
||||
</pre>
|
||||
|
||||
<table style="border: 2px solid black; border-collapse: collapse;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="border: 2px solid black; padding: 5px;">Operation</th>
|
||||
<th style="border: 2px solid black; padding: 5px;">Array</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">1</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[2, 3]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">2</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[3]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 2px solid black; padding: 5px;">3</td>
|
||||
<td style="border: 2px solid black; padding: 5px;">[]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= nums.length <= 10<sup>5</sup></code></li>
|
||||
<li><code>-10<sup>9 </sup><= nums[i] <= 10<sup>9</sup></code></li>
|
||||
<li><code>nums</code> 中的元素 <strong>互不相同</strong> 。</li>
|
||||
</ul>
|
@@ -0,0 +1,38 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>arr</code> 和一个 <code>m x n</code> 的整数 <strong>矩阵</strong> <code>mat</code> 。<code>arr</code> 和 <code>mat</code> 都包含范围 <code>[1,m * n]</code> 内的 <strong>所有</strong> 整数。</p>
|
||||
|
||||
<p>从下标 <code>0</code> 开始遍历 <code>arr</code> 中的每个下标 <code>i</code> ,并将包含整数 <code>arr[i]</code> 的 <code>mat</code> 单元格涂色。</p>
|
||||
|
||||
<p>请你找出 <code>arr</code> 中在 <code>mat</code> 的某一行或某一列上都被涂色且下标最小的元素,并返回其下标 <code>i</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
<img alt="image explanation for example 1" src="https://assets.leetcode.com/uploads/2023/01/18/grid1.jpg" style="width: 321px; height: 81px;" />
|
||||
<pre>
|
||||
<strong>输入:</strong>arr = [1,3,4,2], mat = [[1,4],[2,3]]
|
||||
<strong>输出:</strong>2
|
||||
<strong>解释:</strong>遍历如上图所示,arr[2] 在矩阵中的第一行或第二列上都被涂色。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
<img alt="image explanation for example 2" src="https://assets.leetcode.com/uploads/2023/01/18/grid2.jpg" style="width: 601px; height: 121px;" />
|
||||
<pre>
|
||||
<strong>输入:</strong>arr = [2,8,7,4,1,3,5,6,9], mat = [[3,2,5],[1,4,6],[8,7,9]]
|
||||
<strong>输出:</strong>3
|
||||
<strong>解释:</strong>遍历如上图所示,arr[3] 在矩阵中的第二列上都被涂色。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>m == mat.length</code></li>
|
||||
<li><code>n = mat[i].length</code></li>
|
||||
<li><code>arr.length == m * n</code></li>
|
||||
<li><code>1 <= m, n <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= m * n <= 10<sup>5</sup></code></li>
|
||||
<li><code>1 <= arr[i], mat[r][c] <= m * n</code></li>
|
||||
<li><code>arr</code> 中的所有整数 <strong>互不相同</strong></li>
|
||||
<li><code>mat</code> 中的所有整数 <strong>互不相同</strong></li>
|
||||
</ul>
|
@@ -0,0 +1,38 @@
|
||||
<p>给你两个下标从 <strong>0</strong> 开始长度为 <code>n</code> 的整数排列 <code>A</code> 和 <code>B</code> 。</p>
|
||||
|
||||
<p><code>A</code> 和 <code>B</code> 的 <strong>前缀公共数组</strong> 定义为数组 <code>C</code> ,其中 <code>C[i]</code> 是数组 <code>A</code> 和 <code>B</code> 到下标为 <code>i</code> 之前公共元素的数目。</p>
|
||||
|
||||
<p>请你返回 <code>A</code> 和 <code>B</code> 的 <strong>前缀公共数组</strong> 。</p>
|
||||
|
||||
<p>如果一个长度为 <code>n</code> 的数组包含 <code>1</code> 到 <code>n</code> 的元素恰好一次,我们称这个数组是一个长度为 <code>n</code> 的 <strong>排列</strong> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>A = [1,3,2,4], B = [3,1,2,4]
|
||||
<b>输出:</b>[0,2,3,4]
|
||||
<b>解释:</b>i = 0:没有公共元素,所以 C[0] = 0 。
|
||||
i = 1:1 和 3 是两个数组的前缀公共元素,所以 C[1] = 2 。
|
||||
i = 2:1,2 和 3 是两个数组的前缀公共元素,所以 C[2] = 3 。
|
||||
i = 3:1,2,3 和 4 是两个数组的前缀公共元素,所以 C[3] = 4 。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><b>输入:</b>A = [2,3,1], B = [3,1,2]
|
||||
<b>输出:</b>[0,1,3]
|
||||
<b>解释:</b>i = 0:没有公共元素,所以 C[0] = 0 。
|
||||
i = 1:只有 3 是公共元素,所以 C[1] = 1 。
|
||||
i = 2:1,2 和 3 是两个数组的前缀公共元素,所以 C[2] = 3 。
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= A.length == B.length == n <= 50</code></li>
|
||||
<li><code>1 <= A[i], B[i] <= n</code></li>
|
||||
<li>题目保证 <code>A</code> 和 <code>B</code> 两个数组都是 <code>n</code> 个元素的排列。</li>
|
||||
</ul>
|
@@ -0,0 +1,48 @@
|
||||
<p>给你一个下标从 <strong>0</strong> 开始大小为 <code>m x n</code> 的二维整数数组 <code>grid</code> ,其中下标在 <code>(r, c)</code> 处的整数表示:</p>
|
||||
|
||||
<ul>
|
||||
<li>如果 <code>grid[r][c] = 0</code> ,那么它是一块 <strong>陆地</strong> 。</li>
|
||||
<li>如果 <code>grid[r][c] > 0</code> ,那么它是一块 <strong>水域</strong> ,且包含 <code>grid[r][c]</code> 条鱼。</li>
|
||||
</ul>
|
||||
|
||||
<p>一位渔夫可以从任意 <strong>水域</strong> 格子 <code>(r, c)</code> 出发,然后执行以下操作任意次:</p>
|
||||
|
||||
<ul>
|
||||
<li>捕捞格子 <code>(r, c)</code> 处所有的鱼,或者</li>
|
||||
<li>移动到相邻的 <strong>水域</strong> 格子。</li>
|
||||
</ul>
|
||||
|
||||
<p>请你返回渔夫最优策略下, <strong>最多</strong> 可以捕捞多少条鱼。如果没有水域格子,请你返回 <code>0</code> 。</p>
|
||||
|
||||
<p>格子 <code>(r, c)</code> <strong>相邻</strong> 的格子为 <code>(r, c + 1)</code> ,<code>(r, c - 1)</code> ,<code>(r + 1, c)</code> 和 <code>(r - 1, c)</code> ,前提是相邻格子在网格图内。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2023/03/29/example.png" style="width: 241px; height: 161px;"></p>
|
||||
|
||||
<pre><b>输入:</b>grid = [[0,2,1,0],[4,0,0,3],[1,0,0,4],[0,3,2,0]]
|
||||
<b>输出:</b>7
|
||||
<b>解释:</b>渔夫可以从格子 <code>(1,3)</code> 出发,捕捞 3 条鱼,然后移动到格子 <code>(2,3)</code> ,捕捞 4 条鱼。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<p><img alt="" src="https://assets.leetcode.com/uploads/2023/03/29/example2.png"></p>
|
||||
|
||||
<pre><b>输入:</b>grid = [[1,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,1]]
|
||||
<b>输出:</b>1
|
||||
<b>解释:</b>渔夫可以从格子 (0,0) 或者 (3,3) ,捕捞 1 条鱼。
|
||||
</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 <= 10</code></li>
|
||||
<li><code>0 <= grid[i][j] <= 10</code></li>
|
||||
</ul>
|
Reference in New Issue
Block a user