题解 | #螺旋矩阵#

螺旋矩阵

http://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31

import java.util.*;

public class Solution {
    public ArrayList<Integer> spiralOrder(int[][] matrix) {
        // 右下左上四个方向 
        int[] dx = {0, 1, 0, -1};
        int[] dy = {1, 0, -1, 0};
        ArrayList<Integer> list = new ArrayList<>();
        if (matrix == null || matrix.length == 0) return new ArrayList<>();
        int n = matrix.length, m = matrix[0].length;
        int x = 0, y = 0, d = 0;
        boolean[][] vis = new boolean[15][15];
        // 使用数的个数作为循环的依据
        for (int i = 1; i <= n * m; i++) {
            list.add(matrix[x][y]);
            vis[x][y] = true;
            int tx = x + dx[d], ty = y + dy[d];
            // 是否越界或是否已经读取过
            if (tx < 0 || tx >= n || ty < 0 || ty >= m || vis[tx][ty]) {
                d = (d + 1) % 4;
                tx = x + dx[d];
                ty = y + dy[d];
            }
            x = tx;
            y = ty;
        }
        return list;
    }
}
全部评论

相关推荐

头像
08-13 14:20
已编辑
门头沟学院 Java
之前在学校的时候,舍友老是熬夜打游戏,周末还喜欢早起打游戏😅,吵得没法睡到自然醒现在出来实习独居后,想干嘛就干嘛,打游戏刷视频,没有任何顾虑,学习工作,也没有人能打扰我🦌就这个独居爽
天才无敌小土豆:之前在学校 宿舍一个巨瘦的哥们天天熬夜打游戏 呼噜声还巨大 我睡觉超级敏感 天天睡不着 我睡他下铺 半夜踹他床板让他飞起来 就那一会不会打呼噜 然后继续 那段时间我感觉我都yw了 后来我换了个远一点的床铺 买了新的那种可以捏小的耳塞 老子睡觉爽死了 后悔大三才发现这种耳塞 老子yw又好了 天天夜里上厕所都梆硬
独居后,你的生活是更好了...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务