螺旋的顺序返回矩阵中

给定一个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;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容