【每日一题】【上右下左模拟&while循环体条件不满足时】54.螺旋矩阵-211110/220204

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

 解答:while循环内部不满足也会继续走到结尾

import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> spiralOrder(int[][] matrix) {
        ArrayList<Integer> res = new ArrayList<>();
        if(matrix.length == 0) {
            return res;
        }
        int l = 0;
        int r = matrix[0].length - 1;
        int u = 0;
        int d = matrix.length - 1;
        while(l <= r && u <= d) {
            for(int i = l; i <= r; i++) {
                res.add(matrix[u][i]);
            }
            u++;
            for(int i = u; i <= d; i++) {
                res.add(matrix[i][r]);
            }
            r--;
            for(int i = r; i >= l && u <= d; i--) {
                res.add(matrix[d][i]);
            }
            d--;
            for(int i = d; i >= u && l <= r; i--) {
                res.add(matrix[i][l]);
            }
            l++;
        }
        return res;
    }
}

 

posted @ 2022-02-04 22:41  哥们要飞  阅读(32)  评论(0编辑  收藏  举报