Leetcode 498.对角线遍历

it2026-08-02  2

Leetcode 498.对角线遍历

对角线遍历

给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。

示例:

输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]

输出: [1,2,4,7,5,3,6,8,9]

解释:

说明:

给定矩阵中的元素总数不会超过 100000 。 class Solution { public int[] findDiagonalOrder(int[][] matrix) { if(matrix==null||matrix.length==0) return new int[0]; int rowLength = matrix.length; int columLength = matrix[0].length; int amswer[] = new int[rowLength*columLength]; int count = rowLength + columLength - 1; int m = 0; int n = 0; int amswerIndex = 0; for(int i = 0;i < count;i++){ if(i%2==0){ while(m >= 0&&n < columLength){ amswer[amswerIndex] = matrix[m][n]; amswerIndex++; m--; n++; } if(n < columLength){ m++; }else{ m = m + 2; n--; } }else{ while(m < rowLength&&n >= 0){ amswer[amswerIndex] = matrix[m][n]; amswerIndex++; m++; n--; } if(m < rowLength){ n++; }else{ m--; n = n + 2; } } } return amswer; } }

执行结果: 通过 显示详情 执行用时:2 ms, 在所有 Java 提交中击败了97.84% 的用户 内存消耗:40.3 MB, 在所有 Java 提交中击败了86.45% 的用户

最新回复(0)