题解 | #顺时针打印矩阵#

顺时针打印矩阵

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

代码如下: 需要注意的是每次打印后判断边界的情况。 public static ArrayList printMatrix1(int [][] matrix) { int left = 0; int right = matrix[0].length-1; int top = 0; int bottom = matrix.length-1;

    ArrayList arrayList = new ArrayList();

    while (true){
        //->
        for (int i = left; i < right+1; i++) {
            arrayList.add(matrix[top][i]);
        }
        top++;
        if( top > bottom ){
            break;
        }
        //向下
        for (int i = top; i < bottom+1; i++) {
            arrayList.add(matrix[i][right]);
        }
        right--;
        if( left > right ){
            break;
        }
        //<-
        for (int i = right; i > left-1; i--) {
            arrayList.add(matrix[bottom][i]);
        }
        bottom--;
        if( top > bottom ){
            break;
        }
        //向上
        for (int i = bottom; i >top-1 ; i--) {
            arrayList.add(matrix[i][left]);
        }
        left++;
        if( left > right ){
            break;
        }
    }

    for (int i = 0; i < arrayList.size(); i++) {
        System.out.println(" "+arrayList.get(i));
    }
    return arrayList;
}
全部评论

相关推荐

06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-21 13:38
8月实习会变多吗现在还没找到实习该怎么办...回复的hr好少
码农索隆:3-4月就要开始找,基本上6月份就发offer,7月初已经开始暑期实习了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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