方阵解螺旋002

2024-04-13 11:48
文章标签 螺旋 方阵 002

本文主要是介绍方阵解螺旋002,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、描述

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

2、关键字

矩阵复原

3、思路

模拟

4、notes

拷贝昨天的代码

5、复杂度

时间O(N平方)
空间O(N平方)

6、code

#define right 1
#define down 2
#define left 3
#define up 0
class Solution {
public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>>res(n,vector<int>(n,0));vector<vector<int>>flag(n,vector<int>(n,0));  // 标记有没有访问过int N=n*n;     // 结果个数//vector<int>res;int direct=1;int i=0,j=0;int num=1;while(N){if(direct==right && flag[i][j]==0){  // 向右前行res[i][j]=num;N--;flag[i][j]=1;j++;if(j==n || flag[i][j]==1){  // 向下变向direct=down;i++;j--;                          }num++;}elseif(direct==down && flag[i][j]==0){  // 向下前行res[i][j]=num;N--;flag[i][j]=1;i++;                   if(i==n || flag[i][j]==1){  // 向左变向direct=left;j--;i--;                        }num++;}elseif(direct==left && flag[i][j]==0){  // 前行res[i][j]=num;N--;flag[i][j]=1;j--;if(j==-1 || flag[i][j]==1){  // 变向direct=up;i--;j++;                           }num++;}elseif(direct==up && flag[i][j]==0){  //前行res[i][j]=num;N--;flag[i][j]=1;i--;if(i==-1 || flag[i][j]==1){  // 变向direct=right;j++;i++;}num++;}}return res;}
};

这篇关于方阵解螺旋002的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/900056

相关文章

JavaSE-易错题集-002

1. 下面有关java基本类型的默认值和取值范围,说法错误的是? A 字节型的类型默认值是0,取值范围是-2^7—2^7-1 B boolean类型默认值是false,取值范围是true\false C 字符型类型默认是0,取值范围是-2^15 —2^15-1 D long类型默认是0,取值范围是-2^63—2^63-1 答案:C 题解:注意字符型(char) char 占16位,

华为OD机试真题-学生方阵-2024年OD统一考试(E卷)

题目描述 学校组织活动,将学生排成一个矩形方阵。 请在矩形方阵中找到最大的位置相连的男生数量。这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的。 注:学生个数不会超过10000 输入描述 输入的第一行为矩阵的行数和列数, 接下来的 n行为矩阵元素,元素间用""分隔。 输出描述 输出一个整数,表示矩阵中最长的位

算法练习题17——leetcode54螺旋矩阵

题目描述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。  代码 import java.util.*;class Solution {public List<Integer> spiralOrder(int[][] matrix) {// 用于存储螺旋顺序遍历的结果List<Integer> result = new ArrayList

​​NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南002

继续,执行pom.xml引入依赖以后,发现以下几种报错: 可以看到在下载aws-java-sdk-bundle 1.12.710版本的时候报错了 可以看到日志信息,就是在阿里云上下载的,因为阿里云上缺少这个jar包 aws-java-sdk-bundle-1.12.710.jar 这个jar包,我还特意去阿里云上查询了一下 https://developer.aliyun.com/

java常用算法之螺旋矩阵

给定一个m*n矩阵,返回所有元素在矩阵中的螺旋序列,例如: [  [ 1, 2, 3 ],  [ 4, 5, 6 ],  [ 7, 8, 9 ] ] 返回[1,2,3,6,9,8,7,4,5]. 算法实现如下: public static List<Integer> spiralMatrix(int source[][]) {List<Integer> result = new Ar

算法训练营——day4螺旋矩阵

1 螺旋矩阵II-力扣59(中等) 1.1 题目:螺旋矩阵II 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]] 示例 2: 输入:n = 1输出:[[1]] 提示: 1 <= n <= 20 1.

P2239 [NOIP2014 普及组] 螺旋矩阵

P2239 [NOIP2014 普及组] 螺旋矩阵 50分 //O(n^2)复杂度,能算n<=10000的 #include <bits/stdc++.h>using namespace std;//row当前行, column当前列, left:左边界,righ:右边界,top:上边界,bottom:下边界 int n, x, y, ans, row=1, column=0, lef,

002线性逻辑结构——线性表

目录 1.数据之间的逻辑关系 2.存储结构的实现 2.1顺序存储结构实现线性表: 对该顺序表进行一系列的增删改查: ①增:         Ⅰ)顺序添加:         Ⅱ)插入添加: ②删:       ③改:       ④查:       输出 整体代码示例 1.数据之间的逻辑关系 线性表:具有相同数据类型的有限个(n)数据元素的序列

代码随想录算法训练营Day02 | 209.长度最小的子数组、59.螺旋矩阵II、区间和、开发商购买土地

文章目录 209.长度最小的子数组思路与重点相关题目(TODO) 59.螺旋矩阵II思路与重点 区间和思路与重点 开发商购买土地思路与重点 209.长度最小的子数组 题目链接:209. 长度最小的子数组 - 力扣(LeetCode)讲解链接:代码随想录 (programmercarl.com)状态:回忆不起来,直接看题解了。 思路与重点 最直观的方法还是我们的暴力

蓝桥杯 顺时针螺旋填入

从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把1,2,3„n*n 的数字按照顺时针螺旋的形式填入其中。例如: 输入数字2,则程序输出: 1 2 4 3 输入数字3,则程序输出: 1 2 3 8 9 4 7 6 5 输入数字4,则程序输出:  1  2   3       4 12  13  14  5 11  16  15  6