leetcode 59. Spiral Matrix II
2016-04-16 23:36
585 查看
59. Spiral Matrix II
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n =
You should return the following matrix:
这道题和【面上编程题】-8剑指offer之解决面试题的思路 中顺序打印矩阵类似。
要生成的矩阵是个正方形,按右,下,左,上的顺序访问正方形的边界,插入数。每次循环完一遍,缩小正方形行列的范围。
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n =
3,
You should return the following matrix:
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
这道题和【面上编程题】-8剑指offer之解决面试题的思路 中顺序打印矩阵类似。
要生成的矩阵是个正方形,按右,下,左,上的顺序访问正方形的边界,插入数。每次循环完一遍,缩小正方形行列的范围。
public class Solution { public int[][] generateMatrix(int n) { int[][] res=new int ; int k=1; //保存的数 int i=0,j=0; //坐标 int h=n,l=0; //正方形的行列的范围 int MAX=n*n; while(k<=MAX){ //向右 while(k<=MAX && j<h){ res[i][j++]=k++; } j--; i++; //向下 while(k<=MAX && i<h){ res[i++][j]=k++; } i--; j--; //向左 while(k<=MAX && j>=l){ res[i][j--]=k++; } j++; i--; //向上 while(k<=MAX && i>l){ res[i--][j]=k++; } i++; j++; h--; l++; } return res; } }
相关文章推荐
- 验证进栈出栈的合法性
- 分治法求最接近点对问题
- 2015年简短总结
- HDU 5666 快速乘
- leetcode 16: 3 Sum closest (C#版)
- MFC CStatic类动态创建
- VLC播放RTSP视频延迟问题
- 利用链表实现多项式求值
- VS2013中 scanf()函数返回值
- Jersey(1.19.1) - Security
- Linux防止“rm -rf /”误操作的方法
- Merge OUTPUT 高级用法综合写的一个MergeTab的存储过程
- POJ-1655 Balancing Act
- 数据平台的简单使用
- SLAM学习
- Django:之ORM、CMS和二维码生成
- Windows server 2012R2安装活动目录
- 方便学习的一些经典网站
- HDU 5665
- 使用 PDO 方式将 Session 保存到 MySQL 数据中