题解 | #螺旋矩阵#

螺旋矩阵

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

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

        ArrayList<Integer> res = new ArrayList<Integer>();

        if(matrix.length == 0) return res;

        //分别记录上、下、左、右边界
        int up = 0;
        int bottom = matrix.length - 1;
        int left = 0;
        int right = matrix[0].length - 1;
        while(up < (matrix.length + 1)/2 && left <  (matrix[0].length + 1)/2){
                //顺时针填充

                //1.填充上边界
                for(int i = left ; i <= right ; i++){
                    res.add(matrix[up][i]);
                }
                //2.填充右边界
                for(int i = up + 1 ; i <= bottom ; i++){
                    res.add(matrix[i][right]);
                }
                //3.填充下边界
                for(int i = right - 1 ; up != bottom && i >= left  ; i--){
                    res.add(matrix[bottom][i]);
                }
                //4.填充左边界
                for(int i = bottom - 1 ; left != right && i >= up + 1   ; i--){
                    res.add(matrix[i][left]);
                }

                up++;
                bottom--;
                left++;
                right--;
        }

        return res;
        
    }
}

全部评论

相关推荐

04-07 20:46
宁夏大学 Java
一个轮子项目一个苍穹外卖,外卖项目包装成其他的,但是技术点都没变,不知道这样可行不可行。有没有好心人帮我提点建议啊
拿铁不coding:找实习微服务可不学,mq大致场景要了解,但不学问题也不大。我没写在简历上,也没咋问。重点还是mysql redis Java的八股,我根据真实面经整理得到的最全(高/中/低频)面试题,需要的牛u可以订阅一手我的专栏,祝好运
点赞 评论 收藏
分享
无一技之长怎么办:别去右边,售前,实施,需求分析一起,这是把人当牛马用啊,快跑,这些岗位天花板很低的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务