mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-05 07:21:40 +08:00
87 lines
3.6 KiB
HTML
87 lines
3.6 KiB
HTML
<p>给你一个大小为 <code>n x m</code> 的二维整数矩阵 <code>grid</code>,其中每个元素的值为 <code>0</code>、<code>1</code> 或 <code>2</code>。</p>
|
||
|
||
<p><strong>V 形对角线段</strong> 定义如下:</p>
|
||
|
||
<ul>
|
||
<li>线段从 <code>1</code> 开始。</li>
|
||
<li>后续元素按照以下无限序列的模式排列:<code>2, 0, 2, 0, ...</code>。</li>
|
||
<li>该线段:
|
||
<ul>
|
||
<li>起始于某个对角方向(左上到右下、右下到左上、右上到左下或左下到右上)。</li>
|
||
<li>沿着相同的对角方向继续,保持 <strong>序列模式 </strong>。</li>
|
||
<li>在保持 <strong>序列模式 </strong>的前提下,最多允许 <strong>一次顺时针 90 度转向 </strong>另一个对角方向。</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<p><img alt="" src="https://pic.leetcode.cn/1739609732-jHpPma-length_of_longest3.jpg" style="width: 481px; height: 202px;" /></p>
|
||
|
||
<p>返回最长的 <strong>V 形对角线段 </strong>的 <strong>长度 </strong>。如果不存在有效的线段,则返回 0。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong> <span class="example-io">grid = [[2,2,1,2,2],[2,0,2,2,0],[2,0,1,1,0],[1,0,2,2,2],[2,0,0,2,2]]</span></p>
|
||
|
||
<p><strong>输出:</strong> <span class="example-io">5</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p><img alt="" src="https://pic.leetcode.cn/1739609768-rhePxN-matrix_1-2.jpg" style="width: 201px; height: 192px;" /></p>
|
||
|
||
<p>最长的 V 形对角线段长度为 5,路径如下:<code>(0,2) → (1,3) → (2,4)</code>,在 <code>(2,4)</code> 处进行 <strong>顺时针 90 度转向 </strong>,继续路径为 <code>(3,3) → (4,2)</code>。</p>
|
||
</div>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong> <span class="example-io">grid = [[2,2,2,2,2],[2,0,2,2,0],[2,0,1,1,0],[1,0,2,2,2],[2,0,0,2,2]]</span></p>
|
||
|
||
<p><strong>输出:</strong> <span class="example-io">4</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p><img alt="" src="https://pic.leetcode.cn/1739609774-nYJElV-matrix_2.jpg" style="width: 201px; height: 201px;" /></p>
|
||
|
||
<p>最长的 V 形对角线段长度为 4,路径如下:<code>(2,3) → (3,2)</code>,在 <code>(3,2)</code> 处进行 <strong>顺时针 90 度转向 </strong>,继续路径为 <code>(2,1) → (1,0)</code>。</p>
|
||
</div>
|
||
|
||
<p><strong>示例 3:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong> <span class="example-io">grid = [[1,2,2,2,2],[2,2,2,2,0],[2,0,0,0,0],[0,0,2,2,2],[2,0,0,2,0]]</span></p>
|
||
|
||
<p><strong>输出:</strong> <span class="example-io">5</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p><img alt="" src="https://pic.leetcode.cn/1739609780-tlkdUW-matrix_3.jpg" style="width: 201px; height: 201px;" /></p>
|
||
|
||
<p>最长的 V 形对角线段长度为 5,路径如下:<code>(0,0) → (1,1) → (2,2) → (3,3) → (4,4)</code>。</p>
|
||
</div>
|
||
|
||
<p><strong>示例 4:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong> <span class="example-io">grid = [[1]]</span></p>
|
||
|
||
<p><strong>输出:</strong> <span class="example-io">1</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>最长的 V 形对角线段长度为 1,路径如下:<code>(0,0)</code>。</p>
|
||
</div>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>n == grid.length</code></li>
|
||
<li><code>m == grid[i].length</code></li>
|
||
<li><code>1 <= n, m <= 500</code></li>
|
||
<li><code>grid[i][j]</code> 的值为 <code>0</code>、<code>1</code> 或 <code>2</code>。</li>
|
||
</ul>
|