博客
关于我
【数组】59. 螺旋矩阵 II
阅读量:460 次
发布时间:2019-03-06

本文共 764 字,大约阅读时间需要 2 分钟。

难度中等398

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

示例 1:

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

示例 2:

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

思路

golang

这题主要考咱们的是模拟能力和对代码的掌握能力,特别是对边界的考虑。

我们可以将填充矩阵元素分为以下四个过程:

  • 填充上行从左到右
  • 填充右列从上到下
  • 填充下行从右到左
  • 填充左列从下到上

这里可以看到需要引入left,right,top,bottom四个变量作为边界的控制,因为矩阵从0开始,所以四个变量分别初始化为left=0 right=n-1 top=0 bottom=n-1 (其中n为给定正整数)接下里就是按照填充顺序进行模拟。

func generateMatrix(n int) [][]int {	left, right, top, bottom := 0, n-1, 0, n-1	//创建二维用于填充的二维数组  注意:golang的二维数组创建比较特殊    matrix := make([][]int,n)    for i:=0;i
=left;i--{ matrix[bottom][i] = num num++ } bottom-- //填充左列 从下到上 for i:=bottom;i>=top;i--{ matrix[i][left] = num num++ } left++ } return matrix}

转载地址:http://negbz.baihongyu.com/

你可能感兴趣的文章
FunDA(16)- 示范:整合并行运算 - total parallelism solution
查看>>
简单实用算法——字节位序反转
查看>>
webpack之带有可自动打开浏览器及热重载的基本配置
查看>>
前端的批量接口如何快速响应?有没有通用解决方案?
查看>>
git clone 出现fatal: unable to access ‘https://github 错误解决方法
查看>>
Shader 入门笔记(一) 如何学习shader
查看>>
Huffman树及其编解码
查看>>
分布式、高并发、高性能场景(抢购、秒杀、抢票、限时竞答)数据一致性解决方案
查看>>
淘宝镜像
查看>>
微信小程序引用外部字体或者图标
查看>>
PLSQL数据导入导出问题解决(空表、大字段表、表空间错误等)
查看>>
解决eclipse导出javadoc时的“错误: 编码GBK的不可映射字符”问题
查看>>
Python算法_盛最多水的容器(04)
查看>>
20.波利亚过程
查看>>
04_Mysql配置文件(重要参数)
查看>>
Egret Engine(白鹭引擎)介绍及windows下安装
查看>>
Asp.net mvc项目架构分享系列之架构概览
查看>>
探究 C# 中的 char 、 string(一)
查看>>
浅谈使用git进行版本控制
查看>>
python 序列化及其相关模块(json,pickle,shelve,xml)详解
查看>>