螺旋矩阵 II

news2024/11/15 4:20:45

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

示例 1:

img

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

示例 2:

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

代码如下:

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> res(n,vector<int>(n,0));
        int up=0;//定义上边界
        int down=n-1;//下边界
        int left=0;//左边界
        int right=n-1;//右边界
        int num=1;//里面插入的数字由1开始
        while(num<=n*n)//插入到n*n为止
        {
            for(int i=left;i<=right;i++)//从左到右遍历
            {
                res[up][i]=num++;
            }
            if(++up>down)//用++up,不是up++ ->原因先更新up的值再与down进行比较
            {
                break;//重新定义上边界
            }
            for(int i=up;i<=down;i++)//从上到下
            {
                res[i][right]=num++;
            }
            if(--right<left)//用--right,不是right-- ->原因先更新right的值再与left进行比较
            {
                break;//重新定义右边界
            }
            for(int i=right;i>=left;i--)//从右到左
            {
                res[down][i]=num++;
            }
            if(--down<up)//用--down,不是down-- ->原因先更新down的值再与up进行比较
            {
                break;//重新定义下边界
            }
            for(int i=down;i>=up;i--)//从下到上
            {
                res[i][left]=num++;
            }
            if(++left>right)//用++left,不是left++ ->原因先更新left的值再与right进行比较
            {
                break;//重新定义左边界
            }
        }
        return res;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/806715.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

九耶:冯·诺伊曼体系

冯诺伊曼体系&#xff08;Von Neumann architecture&#xff09;是一种计算机体系结构&#xff0c;它由匈牙利数学家冯诺伊曼于1945年提出。冯诺伊曼体系是现代计算机体系结构的基础&#xff0c;几乎所有的通用计算机都采用了这种体系结构。 冯诺伊曼体系的核心思想是将计算机硬…

【雕爷学编程】Arduino动手做(175)---机智云ESP8266开发板模块2

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

设计模式-备忘录模式在Java中使用示例-象棋悔棋

场景 备忘录模式 备忘录模式提供了一种状态恢复的实现机制&#xff0c;使得用户可以方便地回到一个特定的历史步骤&#xff0c;当新的状态无效 或者存在问题时&#xff0c;可以使用暂时存储起来的备忘录将状态复原&#xff0c;当前很多软件都提供了撤销(Undo)操作&#xff0…

CSDN周赛65期简要题解

最近几期周赛里&#xff0c;貌似 Python 又变成 C 站的亲儿子了。输入形式是列表还不过瘾&#xff0c;现在输出形式也要求是列表&#xff0c;而且是连一个逗号、空格、中括号都不能少的 Python 标准列表形式。虽然对 Python 来说是信手拈来&#xff0c;但总要考虑一下其他编程语…

建木-进阶使用-自动化部署-流程自动化部署-节点化部署-将jar包运行在指定的服务器上-ssh文件书写-docker镜像创建

阿丹&#xff1a; 建木的搭建以及在jar包中的dockerfile文件的书写。已经完毕。现在开始使用建木的流程化部署来完成自动化部署。 进入我们自己配置的建木页面 新建一个分组&#xff0c;方便我们不同项目的管理 起名要求见名知意 使用图形项目 开始新建一个流程&#xff0c;…

百题千解计划【CSDN每日一练】“小明投篮,罚球线投球可得一分”(附解析+多种实现方法:Python、Java、C、C++、C#、Go、JavaScript)

这个心上人,还不知道在哪里,感觉明天就会出现。 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌟[2] 2022年度博客之星人工智能领域TOP4🌟 🏅[3] 阿里云社区特邀专家博主🏅 🏆[4] CSDN-人工智能领域优质创作者�…

十八章:用于弱监督语义分割的自监督等变注意力机制

0.摘要 图像级弱监督语义分割是一个具有挑战性的问题&#xff0c;近年来得到了深入研究。大多数先进的解决方案利用类激活图&#xff08;CAM&#xff09;。然而&#xff0c;由于全监督和弱监督之间存在差距&#xff0c;CAM几乎无法用作对象掩码。在本文中&#xff0c;我们提出了…

最后的组合:K8s 1.24 基于 Hekiti 实现 GlusterFS 动态存储管理实践

前言 知识点 定级&#xff1a;入门级GlusterFS 和 Heketi 简介GlusterFS 安装部署Heketi 安装部署Kubernetes 命令行对接 GlusterFS 实战服务器配置(架构 1:1 复刻小规模生产环境&#xff0c;配置略有不同) 主机名IPCPU内存系统盘数据盘用途ks-master-0192.168.9.912450100…

王道数据结构-代码实操1(全注解版)

#include<stdio.h>void loveyou(int n){ // 传入参数类型为int型&#xff0c;在此函数中表示为n&#xff1b;返回值类型为void&#xff0c;即没有返回值&#xff1b; int i1; //定义了一个整数型变量i&#xff0c;且只在loveyou函数中有用&#xff1b;while(i…

python环境搭建和pycharm安装

python环境搭建 下载地址&#xff1a;Python Releases for Windows | Python.org 双击安装 选择自定义安装&#xff0c;勾选添加至PATH 配置自定义安装路径 点击disable 长度限制 测试安装 winr ->cmd->python,出现版本号则安装成功 pycharm安装 访问Jetbrains中文官网&a…

linux的C/C++线程池(VS2019开发)

文章目录 一、准备工作二、C语言threadpool实现三、C 11标准实现 代码看视频敲的&#xff0c;非原创 一、准备工作 创建项目 连接linux虚拟机 启动测试&#xff1a;VS2019运行Linux程序报错&#xff1a;无法启动gdb。系统中缺少gdb。sudo yum install -y gdb 线程池的组成主…

【Maven】Maven配置国内镜像

文章目录 1. 配置maven的settings.xml文件1.1. 先把镜像mirror配置好1.2. 再把仓库配置好 2. 在idea中引用3. 参考资料 网上配置maven国内镜像的文章很多&#xff0c;为什么选择我&#xff0c;原因是&#xff1a;一次配置得永生、仓库覆盖广、仓库覆盖全面、作者自用的配置。 1…

matlab使用教程(5)—矩阵定义和基本运算

本博客介绍如何在 MATLAB 中创建矩阵和执行基本矩阵计算。 MATLAB 环境使用矩阵来表示包含以二维网格排列的实数或复数的变量。更广泛而言&#xff0c;数组为向量、矩阵或更高维度的数值网格。MATLAB 中的所有数组都是矩形&#xff0c;在这种意义上沿任何维度的分量向量的长度…

启动Anaconda卡在loading applications的解决办法

启动Anaconda卡在 loading applications的解决办法 问题解决方法 问题 系统环境&#xff1a;macOS BigSur v11.2.2 启动anaconda后&#xff0c;卡在 loading applications界面。 解决方法 在anaconda安装目录下找到conda_api.py文件&#xff0c;将 data yaml.load(f)修改为…

【沐风老师】3dMax子样条线编辑插件SubSpline使用方法详解

3dMax子样条线编辑插件SubSpline&#xff0c;是3dMax中样条曲线形状的高级子对象选择器和材质ID编辑器。 只需一个简单的切换按钮&#xff0c;即可在屏幕上轻松显示所有选定形状的顶点编号和材质ID。 利用箭头工具选择样条曲线子对象&#xff0c;以补充和扩展3dsMax的标准工具…

推荐功能强大的活码管理平台(支持淘宝客和分享卡片)

功能强大的活码管理平台源码-支持淘宝客和分享卡片等功能 演示地址&#xff1a;runruncode.com/code/19494.html 首页 查看群活码、客服码、渠道码当天总访问量查看成员账号个数查看群活码、客服码、渠道码当天各时段访问量 群活码 创建、编辑、删除、分享群活码查看群活码…

使用MyBatis(2)

目录 一、定义接口、实体类、创建XML文件实现接口&#xff09; 二、MyBatis的增删改查 &#x1f345;1、MyBatis传递参数查询 &#x1f388;写法一 &#x1f388;写法二 &#x1f388;两种方式的区别 &#x1f345;2、删除操作 &#x1f345;3、根据id修改用户名 &#x…

推荐带500创作模型的付费创作V2.1.0独立版系统源码

ChatGPT 付费创作系统 V2.1.0 提供最新的对应版本小程序端&#xff0c;上一版本增加了 PC 端绘画功能&#xff0c; 绘画功能采用其他绘画接口 – 意间 AI&#xff0c;本版新增了百度文心一言接口。 后台一些小细节的优化及一些小 BUG 的处理&#xff0c;前端进行了些小细节优…

fasta序列转为数字0和1-python

原始文件&#xff1a; 目标文件&#xff1a; linux版本 #name:lin_convert_fasta_to_01.py #! /usr/bin/env python #usage: python hash-always.py -l 1.list -f 2.txt > out.txt import argparse parser argparse.ArgumentParser(description"Advanced screeni…

训练自己的行文本检测EAST模型

训练自己的行文本检测EAST模型 训练数据格式 训练数据格式