题解 | #螺旋矩阵#

螺旋矩阵

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

import java.util.*;
public class Solution {
    public ArrayList<Integer> spiralOrder(int[][] matrix) {

        ArrayList<Integer> res = new ArrayList<>();
        if(matrix == null || matrix.length == 0 || matrix[0].length == 0){
            return res;
        }
        int m = matrix.length, n = matrix[0].length; 
        int index = 0;
        int l = 0 , r = n - 1, t = 0 , b = m - 1;

        while(l <= r && t <= b){
            // 123 69 87 4 : 分成四次操作遍历一圈
            for(int i = l ; i <= r ; i++){
                res.add(matrix[t][i]);
            }


            for(int i = t+1 ; i <= b ; ++i){
                res.add(matrix[i][r]);
            }

            if(l < r && t < b){ //注意 例如3x5矩阵 遍历第二行 t=b不可继续
                for(int i = r-1 ; i >= l ; i--){
                    res.add(matrix[b][i]);
                }
                for(int i = b-1 ; i > t ; --i){
                    res.add(matrix[i][l]);
                }
            }

            t++;r--;b--;l++;

        }
        return res;


    }
}
全部评论

相关推荐

昨天 10:56
门头沟学院 Java
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:47
机械打工仔:你自己匿名可以,这么好的公司就别给它匿名了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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