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

顺时针打印矩阵

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

import java.util.*;
import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printMatrix(int [][] matrix) {
        ArrayList<Integer> result = new ArrayList<>();
        if(matrix.length == 0) return result;
        int up = 0;
        int down = matrix.length - 1;
        int left = 0;
        int right = matrix[0].length - 1;
        while(up <= down && left <= right){
            for(int i = left; i <= right; i ++){
                result.add(matrix[up][i]);
            }
            up ++;
            if(up > down) break;
            for(int i = up; i <= down; i ++){
                result.add(matrix[i][right]);
            }
            right --;
            if(left > right) break;
            for(int i = right; i >= left; i --){
                result.add(matrix[down][i]);
            }
            down --;
            if(up > down) break;
            for(int i = down; i >= up; i--){
                result.add(matrix[i][left]);
            }
            left ++;
            if(left > right) break;
        }
        return result;
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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