美文网首页
螺旋的顺序返回矩阵中

螺旋的顺序返回矩阵中

作者: 赵老拖 | 来源:发表于2022-05-08 16:24 被阅读0次

    给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。

    思路,
    1、上边界从左到右
    2、右边界从上到下
    3、下边界从右到左
    4、左边界从下到上

    import java.util.ArrayList;
    public class Solution {
        public ArrayList<Integer> spiralOrder(int[][] matrix) {
           ArrayList<Integer> result= new  ArrayList<>();
            if(matrix.length == 0){
                return result;
            }
            int left = 0;
            int right = matrix[0].length - 1;
            int up = 0;
            int down = matrix.length - 1;
            while(left<=right && up<=down){
                //上边界从左到右
                for(int i = left;i<=right;i++){
                    result.add(matrix[up][i]);
                }
                up++;
                if(up>down){
                    break;
                }
                //从上边界到下边界
                for(int i = up;i<=down;i++){
                     result.add(matrix[i][right]);
                }
                right--;
                if(right<left){
                    break;
                }
                //下边界从右到左
                 for(int i = right;i>=left;i--){
                     result.add(matrix[down][i]);
                }
                down--;
                 if(up>down){
                    break;
                }
                //从下到上
                  for(int i = down;i>=up;i--){
                     result.add(matrix[i][left]);
                }
                left++;
                if(right<left){
                    break;
                }
            }
            return result;
        }
    }
    

    相关文章

      网友评论

          本文标题:螺旋的顺序返回矩阵中

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