leetcode 54. 螺旋矩阵-java实现
题目所属分类
螺旋矩阵 这题对做dfs等题 有基础意义
原题链接
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
代码案例:
题解
class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
List<Integer> res = new ArrayList<>();
int n = matrix.length;
if(n == 0 ) return res ;
int m = matrix[0].length ;
//判定是否走过
boolean[][] st = new boolean[n][m];
//右下左上
int dx[] = {0, 1, 0, -1}, dy[] = {1, 0, -1, 0};
//左上角的位置是x,y = 0,方向b=0
for(int i = 0 , x = 0 , y = 0 ,d=0 ; i < n *m ; i ++) {
res.add(matrix[x][y]);
st[x][y] = true ;
int a = x + dx[d];
int b = y + dy[d];
if(a < 0 || a >= n || b < 0 || b >= m || st[a][b]) {//出界了
d = (d+1) % 4;
a = x + dx[d];
b = y + dy[d];
}
x = a;
y = b ;
}
return res ;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!