mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-11 02:58:13 +08:00
55 lines
2.4 KiB
HTML
55 lines
2.4 KiB
HTML
<p>给你一个二维整数数组 <code>grid</code> ,大小为 <code>m x n</code>,其中每个单元格都含一个正整数。</p>
|
||
|
||
<p><strong>转角路径</strong> 定义为:包含至多一个弯的一组相邻单元。具体而言,路径应该完全 <strong>向水平方向</strong> 或者 <strong>向竖直方向</strong> 移动过弯(如果存在弯),而不能访问之前访问过的单元格。在过弯之后,路径应当完全朝 <strong>另一个</strong> 方向行进:如果之前是向水平方向,那么就应该变为向竖直方向;反之亦然。当然,同样不能访问之前已经访问过的单元格。</p>
|
||
|
||
<p>一条路径的 <strong>乘积</strong> 定义为:路径上所有值的乘积。</p>
|
||
|
||
<p>请你从 <code>grid</code> 中找出一条乘积中尾随零数目最多的转角路径,并返回该路径中尾随零的数目。</p>
|
||
|
||
<p>注意:</p>
|
||
|
||
<ul>
|
||
<li><strong>水平</strong> 移动是指向左或右移动。</li>
|
||
<li><strong>竖直 </strong>移动是指向上或下移动。</li>
|
||
</ul>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/03/23/ex1new2.jpg" style="width: 577px; height: 190px;" /></p>
|
||
|
||
<pre>
|
||
<strong>输入:</strong>grid = [[23,17,15,3,20],[8,1,20,27,11],[9,4,6,2,21],[40,9,1,10,6],[22,7,4,5,3]]
|
||
<strong>输出:</strong>3
|
||
<strong>解释:</strong>左侧的图展示了一条有效的转角路径。
|
||
其乘积为 15 * 20 * 6 * 1 * 10 = 18000 ,共计 3 个尾随零。
|
||
可以证明在这条转角路径的乘积中尾随零数目最多。
|
||
|
||
中间的图不是一条有效的转角路径,因为它有不止一个弯。
|
||
右侧的图也不是一条有效的转角路径,因为它需要重复访问已经访问过的单元格。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/03/25/ex2.jpg" style="width: 150px; height: 157px;" /></p>
|
||
|
||
<pre>
|
||
<strong>输入:</strong>grid = [[4,3,2],[7,6,1],[8,8,8]]
|
||
<strong>输出:</strong>0
|
||
<strong>解释:</strong>网格如上图所示。
|
||
不存在乘积含尾随零的转角路径。
|
||
</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<sup>5</sup></code></li>
|
||
<li><code>1 <= m * n <= 10<sup>5</sup></code></li>
|
||
<li><code>1 <= grid[i][j] <= 1000</code></li>
|
||
</ul>
|