LeetCode0498
对角线遍历
题目描述
给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。
示例 1:
1 | 输入:mat = [[1,2,3],[4,5,6],[7,8,9]] |
示例 2:
1 | 输入:mat = [[1,2],[3,4]] |
提示:
m == mat.lengthn == mat[i].length1 <= m, n <= 1041 <= m * n <= 104-105 <= mat[i][j] <= 105
基本思路
根据题目要求,矩阵按照对角线进行遍历。设矩阵的行数为 m, 矩阵的列数为 n, 我们仔细观察对角线遍历的规律可以得到如下信息:
根据以上观察得出的结论,我们直接模拟遍历所有的对角线即可。
代码实现如下:
1 | int* findDiagonalOrder(int** mat, int matSize, int* matnSize, int* returnSize) { |
一看就会一做就废系列
大体上把情况分为两种:奇数和偶数对角线——这两种对角线也代表着不同的遍历顺序(从下到上or从上到下)
一边遍历一边把得到元素存到res数组里,得到新数组,及完成任务。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 全之の博客!


