59.螺旋矩阵

2023-12-25 06:43:40

我的代码

class Solution {
    public int[][] generateMatrix(int n) {
        int[][] ans = new int[n][n];
        int offset = 0;
        int start = 0;
        int count = 1;
        // 左闭右开
        int i = 0, j = 0;// (i,j)
        while (offset++ < (n / 2)) {
            for (i = start, j = start; j < n - offset; j++) {
                // 上
                ans[i][j] = count++;
            }
            for (; i < n - offset; i++) {
                // 右
                ans[i][j] = count++;
            }
            for (; j >= offset; j--) {
                // 下
                ans[i][j] = count++;
            }
            for (; i >= offset; i--) {
                // 左
                ans[i][j] = count++;
            }
            start++;
        }
        if (n % 2 == 1) {
            // 中心
            ans[start][start] = count;
        }
        return ans;
    }
}

官方解更好的地方

直接看官方代码写的
但是还是一直被卡,边界问题要注意

左闭右开

文章来源:https://blog.csdn.net/qq_44047415/article/details/135188025
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。