首页 > 其他分享 >1050 螺旋矩阵

1050 螺旋矩阵

时间:2024-04-18 15:46:38浏览次数:25  
标签:1050 arr 螺旋 int 矩阵 inf nextx nexty dir

和力扣上一道题差不多,不过的当时没写出来,这次出来了。
注释写好了。

#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
#define ll long long
int arr[100010];
int a[10010][10010];
int dx[] = {0,1,0,-1};
int dy[] = {1,0,-1,0};
int main() {
	int n;
	cin>>n;
	for(int i=0; i<n; i++) cin>>arr[i];
	sort(arr,arr+n,greater<int>());
	int dist = inf;
	int r,c;
	//枚举行
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=i; j++) { //枚举列
			if(i*j==n && i-j<dist) {
				dist=i-j;
				r=i;
				c=j;
			}
		}
	}
	//填充
	int x=0,y=0;//初始坐标
	int count = 0;//已经填充的数量
	int dir = 0;//方向
	while(count<n) {
		a[x][y]=arr[count];//填充
		count++;
		int nextx=x+dx[dir];//新坐标
		int nexty=y+dy[dir];
		if(nextx<0||nextx>=r||nexty<0||nexty>=c||a[nextx][nexty]) {//当越界或者已经填充的时候需要改变方向
			dir++;//改变方向
			if(dir==4) {
				dir=0;
			}
			nextx=x+dx[dir];//修正 
			nexty=y+dy[dir];
		}
		x=nextx;//重新赋值 
		y=nexty;
	}
	//cout << r << " " << c;
	for(int i=0; i<r; i++) {
		int flag = 0;
		for(int j=0; j<c; j++) {
			if(flag) cout << " ";
            cout << a[i][j];
            flag++;
		}
		cout << '\n';
	}
	return 0;
}

标签:1050,arr,螺旋,int,矩阵,inf,nextx,nexty,dir
From: https://www.cnblogs.com/chengyiyuki/p/18143629

相关文章

  • 游游的you矩阵(携程24秋招研发岗第一批)
    题面游游拿到了一个字符矩阵,她想知道有多少个三角形满足以下条件:三角形的三个顶点分别是y、o、u字符。三角形为直角三角形,且两个直角边一个为水平、另一个为垂直。输入第一行输入两个正整数n,m,用空格隔开,代表矩阵的行数和列数。接下来的n行,每行输入一个长度为m的字......
  • 卷积/池化、全连接、矩阵乘法/行列式乘法
    卷积https://zhuanlan.zhihu.com/p/76606892不考虑padding填充input矩阵,左边是卷积核,右边是输入:\[\left[\begin{matrix}1&2\\3&4\\\end{matrix}\right]*\left[\begin{matrix}11&22&33\\44&55&66\\77&88&99......
  • PythonOCC基础使用:建模——矩阵变换(平移/旋转/缩放/镜像)
    此处特别感谢小昌做出的贡献!PythonOCC基础使用:建模——矩阵变换(平移/旋转/缩放/镜像)-卡核(caxkernel.com) 1.平移效果图:fromOCC.Core.BRepPrimAPIimportBRepPrimAPI_MakeConefromOCC.Core.TopLocimportTopLoc_LocationfromOCC.Core.TopoDSimportTopoDS_Shapefr......
  • 痞子衡嵌入式:使能i.MXRT1050,1060 Hab签名或加密启动时App链接在片内SRAM的限制
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是使能i.MXRT1050,1060Hab签名或加密启动时App链接在片内SRAM的限制。最近有客户反馈,在RT1060上测试Non-XIP程序启动,如果程序体部分链接进0x20280000地址之后的片内OCRAM区域(这部分是由FlexRAM......
  • 基于矩阵分解的协同过滤算法
    引言随着互联网、大数据等新技术的迅速发展,人们的生活变得更加便捷,但同时也导致网络数据爆炸式增长。为了快速帮助用户找到感兴趣的内容,越来越多的研究者致力于推荐算法的研究,以提高推荐质量,向用户推荐更符合其喜好的内容。然而,目前的推荐算法仍存在数据稀疏性、隐私保护和冷启动......
  • 项目三简易计算器 任务3-1矩阵键盘测试
    任务描述:单片机连接8位共阳极数码管和4*4矩阵键盘,编写键盘测试程序,按下任意按键,显示8个相同数字。线与线之间是立体的,交叉但不相连,没有结点,相当于立交桥。每一个按键相当于上桥下桥口,连接两条路。起到短路开关作用,按下将对应的行列连在一起。 悬空为1,1与0,相连时,1会变0,即......
  • 螺旋矩阵II(力扣59)
    给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 nxn 正方形矩阵 matrix 。示例1:输入:n=3输出:[[1,2,3],[8,9,4],[7,6,5]]示例2:输入:n=1输出:[[1]]提示:1<=n<=20解题思路:明白怎么循环输出,并且每次循环的边界在......
  • LeetCode题练习与总结:螺旋矩阵Ⅱ--59
    一、题目描述给你一个正整数 n,生成一个包含1到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 nxn正方形矩阵matrix。示例1:输入:n=3输出:[[1,2,3],[8,9,4],[7,6,5]]示例2:输入:n=1输出:[[1]]提示:1<=n<=20二、解题思路初始化一个nxn的矩阵,所......
  • 矩阵树定理求所有生成树的边权和
    把一条边\(w\)写成\(wx+1\),则生成树边权积的一次项就是答案。求逆:\((ax+b)^{-1}\equiv(-\frac{a}{b^2}x+\frac{1}{b})\pmod{x^2}\)Codeusingll=longlong;constintN=31;constintMOD=998244353;structPoly{ lla,b; Poly(lla=0,llb=0):a(a),......
  • Proteus8.0仿真应用设计(二十六)基于FreeRTOS、STM32F103C8、HAL库、4x4矩阵键盘应用设
    一、仿真原理图:二、部分代码:        按键采集uint8_tKeyScan(void){ uint8_tvalue=0x00; KeyPort->ODR=0x00; KeyPort->ODR=0xf7; if((KeyPort->IDR&0xf0)!=0xf0) { HAL_Delay(50); if((KeyPort->IDR&0xf0)!=0xf0) { value=......