题解 | #螺旋矩阵#

螺旋矩阵

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

import java.util.ArrayList;
public class Solution {
    public ArrayList<IntegerspiralOrder(int[][] matrix) {
        ArrayList<Integerans = new ArrayList<>();
        if(matrix.length == 0)return ans;   //这两句如果放在int m,n之后,[]的用例就过不了,别问,不知道为啥.
         // lrtb代表可走的,当前的空行,走过会更新(±1)
        
        int m = matrix.length;
        int n = matrix[0].length;
        int l=0, r=n-1, t=0, b=m-1;
        
        while(true){
            for(int i=l;i<=r;i++)ans.add(matrix[t][i]);
            if(++t>b)break;//到边界时,t==b,所以再+1会>b
            for(int i=t;i<=b;i++)ans.add(matrix[i][r]);
            if(--r<l)break;
            for(int i=r;i>=l;i--)ans.add(matrix[b][i]);
            if(--b<t)break;
            for(int i=b;i>=t;i--)ans.add(matrix[i][l]);
            if(++l>r)break;
        }
        return ans;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-18 18:23
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
tttk_:就是人多。 有的是条件和你差不多然后没在od待过的人。 所以就拿这个筛你了。 就和卡学历一样,人太多了。 从公司角度,这样做节省精力,更方便。 没办法谁叫现在人多呢
第一份工作能做外包吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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