美文网首页
LeetCode:498. 对角线遍历

LeetCode:498. 对角线遍历

作者: alex很累 | 来源:发表于2022-06-14 10:45 被阅读0次

    问题链接

    498. 对角线遍历

    问题描述

    给你一个大小为 m x n 的矩阵mat,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。

    示例

    image.png

    解题思路

    还能有啥思路,直接模拟暴力破解;
    注意一下遍历的方向,小心数组下标越界即可。
    又是在LeetCode签到划水的一天~

    代码示例(JAVA)

    class Solution {
        public int[] findDiagonalOrder(int[][] mat) {
            int m = mat.length;
            int n = mat[0].length;
            int[] result = new int[m * n];
    
            int count = 0;
            for (int i = 0; i < m + n - 1; i++) {
                for (int j = i; j >= 0; j--) {
                    // i%2控制遍历方向
                    // 注意下标越界
                    if (i % 2 != 0 && j <= n - 1 && i - j <= m - 1) {
                        result[count++] = mat[i - j][j];
                    } else if (i % 2 == 0 && j <= m - 1 && i - j <= n - 1) {
                        result[count++] = mat[j][i - j];
                    }
                }
            }
    
            return result;
        }
    }
    

    相关文章

      网友评论

          本文标题:LeetCode:498. 对角线遍历

          本文链接:https://www.haomeiwen.com/subject/thpomrtx.html