📘 题目描述:之字形遍历二维数组
给定一个 m x n 的二维数组 grid,数组中的每个元素为正整数。请按照“之字形”的方式遍历该数组,并在遍历过程中跳过每个交替的单元格。
✅ 之字形遍历的定义:
- 从左上角
(0, 0)开始。 - 在当前行中,向右移动,直到到达该行的末尾。
- 下移到下一行,然后在该行中向左移动,直到到达该行的开头。
- 持续行间交替向右、向左移动,直到所有行都被遍历。
- 在遍历过程中,每访问一个单元格,跳过下一个(即跳过每个交替的单元格)。
🧠 解题分析
本题的关键在于实现之字形遍历和跳过交替单元格的机制。可以用不同方式维护跳过状态,比如布尔标志、计数器、甚至直接后处理。
✅ 解法一:使用 flag 标志变量(推荐方式)
我们用一个布尔变量 flag 来控制是否访问当前单元格,每次访问一个单元格就翻转一次。
from typing import List
class Solution:
def zigzagTraversal(self, grid: List[List[int]]) -> List[int]:
m, n = len(grid), len(grid[0])
result = []
flag = 1 #

最低0.47元/天 解锁文章
19万+

被折叠的 条评论
为什么被折叠?



