1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-11 02:58:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/网格游戏 [grid-game].html
2022-03-29 12:43:11 +08:00

53 lines
3.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>给你一个下标从 <strong>0</strong> 开始的二维数组 <code>grid</code> ,数组大小为 <code>2 x n</code> ,其中 <code>grid[r][c]</code> 表示矩阵中 <code>(r, c)</code> 位置上的点数。现在有两个机器人正在矩阵上参与一场游戏。</p>
<p>两个机器人初始位置都是 <code>(0, 0)</code> ,目标位置是 <code>(1, n-1)</code> 。每个机器人只会 <strong>向右</strong> (<code>(r, c)</code><code>(r, c + 1)</code>) 或 <strong>向下 </strong>(<code>(r, c)</code><code>(r + 1, c)</code>) 。</p>
<p>游戏开始,<strong>第一个</strong> 机器人从 <code>(0, 0)</code> 移动到 <code>(1, n-1)</code> ,并收集路径上单元格的全部点数。对于路径上所有单元格 <code>(r, c)</code> ,途经后 <code>grid[r][c]</code> 会重置为 <code>0</code> 。然后,<strong>第二个</strong> 机器人从 <code>(0, 0)</code> 移动到 <code>(1, n-1)</code> ,同样收集路径上单元的全部点数。注意,它们的路径可能会存在相交的部分。</p>
<p><strong>第一个</strong> 机器人想要打击竞争对手,使 <strong>第二个</strong> 机器人收集到的点数 <strong>最小化</strong> 。与此相对,<strong>第二个</strong> 机器人想要 <strong>最大化</strong> 自己收集到的点数。两个机器人都发挥出自己的 <strong>最佳水平</strong>&nbsp;的前提下,返回 <strong>第二个</strong> 机器人收集到的 <strong>点数</strong> <em></em></p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2021/09/08/a1.png" style="width: 388px; height: 103px;" /></p>
<pre>
<strong>输入:</strong>grid = [[2,5,4],[1,5,1]]
<strong>输出:</strong>4
<strong>解释:</strong>第一个机器人的最佳路径如红色所示,第二个机器人的最佳路径如蓝色所示。
第一个机器人访问过的单元格将会重置为 0 。
第二个机器人将会收集到 0 + 0 + 4 + 0 = 4 个点。
</pre>
<p><strong>示例 2</strong></p>
<img alt="" src="https://assets.leetcode.com/uploads/2021/09/08/a2.png" style="width: 384px; height: 105px;" />
<pre>
<strong>输入:</strong>grid = [[3,3,1],[8,5,2]]
<strong>输出:</strong>4
<strong>解释:</strong>第一个机器人的最佳路径如红色所示,第二个机器人的最佳路径如蓝色所示。
第一个机器人访问过的单元格将会重置为 0 。
第二个机器人将会收集到 0 + 3 + 1 + 0 = 4 个点。
</pre>
<p><strong>示例 3</strong></p>
<img alt="" src="https://assets.leetcode.com/uploads/2021/09/08/a3.png" style="width: 493px; height: 103px;" />
<pre>
<strong>输入:</strong>grid = [[1,3,1,15],[1,3,3,1]]
<strong>输出:</strong>7
<strong>解释:</strong>第一个机器人的最佳路径如红色所示,第二个机器人的最佳路径如蓝色所示。
第一个机器人访问过的单元格将会重置为 0 。
第二个机器人将会收集到 0 + 1 + 3 + 3 + 0 = 7 个点。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>grid.length == 2</code></li>
<li><code>n == grid[r].length</code></li>
<li><code>1 &lt;= n &lt;= 5 * 10<sup>4</sup></code></li>
<li><code>1 &lt;= grid[r][c] &lt;= 10<sup>5</sup></code></li>
</ul>