题解 | #顺时针打印矩阵#题目通过的声音真好听啊

顺时针打印矩阵

https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a

import java.util.*;
import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printMatrix(int [][] matrix) {
        if(matrix==null) return null;
        int zx=0;
        int zy=0;
        int yx=matrix.length-1;//gao3
        int yy=matrix[0].length-1;//kuan3
        ArrayList<Integer> my=new ArrayList<Integer>();
        while(zx<=yx&&zy<=yy){

        int x=zx;
        int y=zy;
        while(y<=yy){ 
            my.add(matrix[zx][y]); 
            y++;}
            y--;
            // System.out.println(y);
            x++;
        
        while(x<=yx){
            my.add(matrix[x][yy]);
            x++;}
            x--;
            // System.out.println(x);
            y--;
        if(yy-zy==0||yx-zx==0){//这里特别重要,这里没判断好多都不对
            break;
        }
        while(y>=zy&&y<yy){
            my.add(matrix[yx][y]);
            y--;}
            x--;
        while(x>zx&&x<yx){
            my.add(matrix[x][zy]);
            x--;}
        zx++;zy++;yy--;yx--;        
        }
        return my;
            }           
    }

感觉人快死了才通本题,扣边界真的好难。程序员就是最细心的职业好吗?

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务