Leetcode 59. 螺旋打印矩阵

题目描述

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

示例 1:
输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]
示例 2:

输入:n = 1
输出:[[1]]

解题思路

此题相对上一题leetcode54更简单,因为边界更可控,是正方形,可以从外圈向中央逼近,重点是边界的处理,避免重复

代码实现

class Solution {
    public int[][] generateMatrix(int n) {
        int[][] r = new int[n][n];
        int lr = 0, rr = n -1, sum = n* n;
        fill(r, lr, rr, 1, sum);
        return r;
    }

    private void fill(int[][] r, int lr, int rr, int n, int sum) {
       if(n > sum) return;
        if(lr > rr) return;
        for (int i = lr; i <= rr; i++) {
            r[lr][i] = n;
            n++;
        }
        for (int i = lr+1; i <= rr; i++) {
            r[i][rr] = n;
            n++;
        }
        for (int i = rr-1; i >= lr; i--) {
            r[rr][i] = n;
            n++;
        }
        for (int i = rr-1; i > lr; i--) {
            r[i][lr] = n;
            n++;
        }
        fill(r, lr+1, rr-1, n, sum);
    }
}

相关推荐

  1. Leetcode 59. 螺旋打印矩阵

    2024-07-11 02:56:01       24 阅读
  2. Golang leetcode59 螺旋矩阵

    2024-07-11 02:56:01       46 阅读
  3. LeetCode59 螺旋矩阵 II

    2024-07-11 02:56:01       49 阅读
  4. leetCode59. 螺旋矩阵 II

    2024-07-11 02:56:01       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 02:56:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 02:56:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 02:56:01       58 阅读
  4. Python语言-面向对象

    2024-07-11 02:56:01       69 阅读

热门阅读

  1. MySQL 日期和时间函数

    2024-07-11 02:56:01       19 阅读
  2. Leetcode234.判断是否是回文单链表

    2024-07-11 02:56:01       20 阅读
  3. 基于深度学习的点云降噪

    2024-07-11 02:56:01       22 阅读
  4. Git 一种分布式版本控制系统

    2024-07-11 02:56:01       21 阅读
  5. C# —— FileStream文件流

    2024-07-11 02:56:01       21 阅读
  6. Pandas 进阶 —— 数据转换、聚合与可视化

    2024-07-11 02:56:01       24 阅读
  7. Ubuntu 22.04.1 LTS 离线安装Docker

    2024-07-11 02:56:01       21 阅读
  8. Perl文件系统探险家:自定义遍历策略全攻略

    2024-07-11 02:56:01       20 阅读
  9. 详解Go语言中的Goroutine组(Group)在项目中的使用

    2024-07-11 02:56:01       18 阅读
  10. numpy学习

    2024-07-11 02:56:01       20 阅读