leetcode day22 59

embedded/2025/2/27 1:10:52/

59 螺旋矩阵

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

示例 1:

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

示例 2:

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

写在前面:malloc分配二维数组m*n内存的方法

int **a=(int**)malloc(sizeof(int*)*m);

for(int i=0;i<m;i++){

   a[i]=(int*)malloc(sizeof(int)*n);

}

*returnSize返回数组列数

*returnColumnSizes=(int *)malloc(sizeof(int)*m);//返回行数也要分配内存

  (*returnColumnSizes)[i]=n;//第i行的列数为n

解题思路:采用左闭右开的思想。每次最后面的一个不处理。

设置循环初始位置,x=0,y=0

确定循环圈数 loop=n/2,最后圈数是奇数中间位置要填充一个

设置一个偏移量offset,每次循环x++,y++,loop--,offset++

模拟题意即可。

int** generateMatrix(int n, int* returnSize, int** returnColumnSizes) {*returnSize=n;//返回数组列数*returnColumnSizes=(int *)malloc(sizeof(int)*n);//返回行数//二维数组分配内存空间int **num=(int **)malloc(sizeof(int *)*n);int i,j;for(i=0;i<n;i++){num[i]=(int *)malloc(sizeof(int)*n);//分配列(*returnColumnSizes)[i]=n;//第i行的列数为n}int x=0,y=0;//起始位置int offset=1,cnt=1;int loop=n/2;//循环圈数for(loop=n/2;loop>0;loop--){for(j=y;j<n-offset;j++){num[x][j]=cnt++;}for(i=x;i<n-offset;i++){num[i][j]=cnt++;}for(j=n-offset;j>y;j--){num[i][j]=cnt++;}for(i=n-offset;i>x;i--){num[i][j]=cnt++;}x++;y++;offset++;}if(n%2!=0)num[x][y]=cnt;//奇数,填充中间的return num;
}


http://www.ppmy.cn/embedded/167410.html

相关文章

VIM FZF 安裝和使用

在 Vim 中安装和使用 fzf 进行文件、函数、变量、宏定义的模糊匹配 以下是详细步骤&#xff1a; 1. 安装 fzf 和 fzf.vim 插件 1.1 安装 fzf 工具 fzf 是一个命令行模糊查找工具&#xff0c;必须先安装它。根据你的操作系统选择安装方式&#xff1a; macOS: brew install fz…

Java使用EasyExcel实现异步导出

以下是使用 EasyExcel 工具类实现异步导出功能的 Demo&#xff0c;包括用户发起导出请求后&#xff0c;系统先返回响应&#xff0c;后台读取数据并上传至 COS&#xff0c;最后通知用户下载的完整流程。 实现步骤 用户发起导出请求 前端调用导出接口&#xff0c;后端立即返回响应…

机器学习数学基础:32.斯皮尔曼等级相关

斯皮尔曼等级相关教程 一、定义与原理 斯皮尔曼等级相关系数&#xff08;Spearman’s rank - correlation coefficient&#xff09;&#xff0c;常用 ρ \rho ρ表示&#xff0c;是一种非参数统计量&#xff0c;用于衡量两个变量的等级之间的关联程度。它基于变量的秩次&…

力扣-动态规划-63 不同路径Ⅱ

思路 dp数组定义&#xff1a;到下标为i&#xff0c; j 的地方共有dp[i][j]条路径递推公式&#xff1a;在当前节点不是障碍物时&#xff0c;dp[i][j] dp[i][j-1] dp[i-1][j]&#xff0c;否则就是为0dp数组初始化&#xff1a;dp[0][0]初始化也需要做判断遍历顺序&#xff1a;自…

python制图之小提琴图

提琴图&#xff08;Violin Plot&#xff09;是一种结合了箱线图&#xff08;Box Plot&#xff09;和核密度估计&#xff08;Kernel Density Estimation, KDE&#xff09;的可视化工具&#xff0c;用于展示数据的分布情况和概率密度。它在数据可视化中具有独特的作用.本节我们学…

网络安全服务实施流程管理 网络安全服务体系

一、安全服务 由系统提供的&#xff0c;并能确保系统或数据传输足够安全的服务 安全服务实现了安全策略&#xff0c;而安全机制实现了安全服务 &#xff08;1&#xff09;认证 确保通信实体就是它所声称的那个实体。认证服务与确保通信是密切相关的。 对等实体认证&#xf…

分布式之分布式锁

目录 分布式锁 分布式锁 分布式锁是一种用于在分布式系统中控制多个进程或线程对共享资源进行访问的机制,以下是对它的详细介绍: 作用:在分布式系统中,通常会有多个进程或线程可能同时访问共享资源,如数据库、文件系统等。分布式锁可以确保在同一时间只有一个进程或线程…

flowable-ui 的会签功能实现

场景&#xff1a;在进行智慧保时通开发时&#xff0c;有个协作合同入围功能&#xff0c;这个功能的流程图里有个评审小组&#xff0c;这个评审小组就需要进行会签操作&#xff0c;会签完成后&#xff0c;需要依据是否有不通过的情况选择下一步走的流程 思考步骤&#xff1a; 首…