顺时针打印矩阵

顺时针打印矩阵

http://www.nowcoder.com/questionTerminal/9b4c81a02cd34f76be2659fa0d54342a

public static ArrayList<Integer> printMatrix(int [][] matrix) {
    ArrayList<Integer> array = new ArrayList<Integer>();
    int leng = matrix.length;
    int hight = matrix[0].length;
    for(int i=0;array.size()<leng*hight;i++){//记录循环了几轮
        int j = i;
        int k = i;
        array.add(matrix[j][k]);
        while(array.size()<leng*hight){
            if(j == i && k<hight-i-1)//向右前进
                k++;
            else if(k==hight-i-1 && j<leng-i-1)//向下前进
                j++;
            else if(j==leng-i-1 && k>=i+1)//向左前进
                k--;
            else if(k==i && j>=i+2)//向上前进
                j--;
            else
                break;
            array.add(matrix[j][k]);
        }
    }
    return array;
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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