当前位置: 首页 > article >正文

LeetCode 59. 螺旋矩阵 II (C++实现)

1. 题目描述

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

示例 1:

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

示例 2:

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

2. 解题思路

首先定义左指针left、右指针right,上指针top,下指针bottom,然后从1开始循环到n^2,遇到边界的时候指针相应地变化。

3. 代码实现

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        int left = 0;
        int top = 0;
        int right = n-1;
        int bottom = n-1;
        vector<vector<int>> ans(n,vector<int>(n,0));

        int idx = 1;
        int target = n * n;

        while(idx <= target)
        {
            for (int i = left; i <= right; i++)
            {
                ans[top][i] = idx;
                idx++;
            }
            top++;
            for (int i = top; i <= bottom; i++)
            {
                ans[i][right] = idx;
                idx++;
            }
            right--;
            for (int i = right; i >= left; i--)
            {
                ans[bottom][i] = idx;
                idx++;
            }
            bottom--;
            for (int i = bottom; i >= top; i--)
            {
                ans[i][left] = idx;
                idx++;
            }
            left++;

        }
        return ans;
    }
};

http://www.kler.cn/a/451108.html

相关文章:

  • Kafka可视化工具 Offset Explorer (以前叫Kafka Tool)
  • 数据结构(Java版)第六期:LinkedList与链表(一)
  • 京东科技基于 Apache SeaTunnel 复杂场景适配 #数据集成
  • 【Linux】Linux开发利器:make与Makefile自动化构建详解
  • 2.利用docker进行gitlab服务器迁移
  • http协议的状态码
  • 算法——二分查找
  • 图的最短路径(C++实现图【4】)
  • Docker、containerd、安全沙箱、社区Kata Containers运行对比
  • 【基于rust-wasm的前端页面转pdf组件和示例】
  • ant design学习记录:响应式尺寸头像大小 Avatar
  • react杂乱笔记(一)
  • 【数据库】SQL应该如何针对数据倾斜问题进行优化
  • 部署开源大模型的硬件配置全面指南
  • 【es6复习笔记】迭代器(10)
  • Web入门常用标签、属性、属性值
  • 学习ASP.NET Core的身份认证(基于JwtBearer的身份认证2)
  • 数据结构与算法易错问题总结
  • 云备份项目--工具类编写
  • Unity AVPro Video使用和WebGL播放视频流
  • 谷歌浏览器的网络安全检测工具介绍
  • 【Linux网络编程】第十三弹---构建HTTP响应与请求处理系统:从HttpResponse到HttpServer的实战
  • 【Web】2024“国城杯”网络安全挑战大赛决赛题解(全)
  • 基于谱聚类的多模态多目标浣熊优化算法(MMOCOA-SC)求解ZDT1-ZDT4,ZDT6和工程应用--盘式制动器优化,MATLAB代码
  • vite + vue3 + tailwind 启动之后报错
  • 回归预测 | MATLAB实现CNN-LSSVM卷积神经网络结合最小二乘支持向量机多输入单输出回归预测