Spiral Matrix II
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 = 3,
You should return the following matrix:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
] 这道题接着上面那道题,是一个逆过程,只要稍微改一下就好了,因为上面一题螺旋式的遍历了整个数组,只要在遍历过程中将数字填进去就好了
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; public class Solution {
// List<Integer> result = new ArrayList<Integer>();
int result[][];
int count = 1;
public int[][] generateMatrix(int n) { result = new int[n][n];
if(0 == n)
return result;
spiralOrder(result);
return result;
} public void spiralOrder(int[][] matrix) { if(matrix.length == 1 && matrix[0].length == 1) //只有一个元素直接添加
{
matrix[0][0] = count++;
}
else if(matrix[0].length == 1){ //竖条
for(int i = 0; i < matrix.length; i++){
matrix[i][0] = count++;
}
}
else if(matrix.length == 1){ //横条
for(int i = 0; i < matrix[0].length; i++){
matrix[0][i] = count++;
}
}
else {
for(int i = 0; i < matrix[0].length; i++){ //添加第一排
matrix[0][i] = count++;
}
for(int i = 1; i < matrix.length; i++){ //添加最后一竖
matrix[i][matrix[0].length - 1] = count++;
}
for(int i = matrix[0].length - 2; i >= 0; i--){ //添加最后一排
matrix[matrix.length - 1][i] = count++;
}
for(int i = matrix.length - 2; i >= 1;i--){ //添加第一排
matrix[i][0] = count++;
}
if(matrix.length - 2 != 0 && matrix[0].length - 2 != 0){
int next[][] = new int[matrix.length - 2][matrix[0].length - 2];
spiralOrder(next); //递归求解下一个矩阵的值
for(int i = 1; i < matrix.length - 1; i++){
for(int j = 1; j < matrix[0].length - 1;j++){
matrix[i][j] = next[i - 1][j - 1];
}
} } }
}
}
Spiral Matrix II的更多相关文章
- 【leetcode】Spiral Matrix II
		Spiral Matrix II Given an integer n, generate a square matrix filled with elements from 1 to n2 in s ... 
- 59. Spiral Matrix  &&  Spiral Matrix II
		Spiral Matrix Given a matrix of m x n elements (m rows, n columns), return all elements of the matri ... 
- leetcode 54. Spiral Matrix 、59. Spiral Matrix II
		54题是把二维数组安卓螺旋的顺序进行打印,59题是把1到n平方的数字按照螺旋的顺序进行放置 54. Spiral Matrix start表示的是每次一圈的开始,每次开始其实就是从(0,0).(1,1 ... 
- LeetCode: Spiral Matrix II 解题报告-三种方法解决旋转矩阵问题
		Spiral Matrix IIGiven an integer n, generate a square matrix filled with elements from 1 to n2 in sp ... 
- 【leetcode】59.Spiral Matrix II
		Leetcode59 Spiral Matrix II Given an integer n, generate a square matrix filled with elements from 1 ... 
- Leetcode 54. Spiral Matrix & 59. Spiral Matrix II
		54. Spiral Matrix [Medium] Description Given a matrix of m x n elements (m rows, n columns), return ... 
- [LeetCode] Spiral Matrix II 螺旋矩阵之二
		Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For ... 
- 【leetcode】Spiral Matrix II (middle)
		Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For ... 
- Java for LeetCode 059 Spiral Matrix II
		Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For ... 
随机推荐
- Matplotlib之无GUI时的解决办法
			需添加: import matplotlib as mpl mpl.use('Agg') 而且必须添加在import matplotlib.pyplot之前,否则无效 
- 各种LICENSE的作用--GET
			许 多开发者和设计者希望把他们的作品作为开源项目共享,他们希望其他人能够利用和共享他们的代码. 而各种开源社区就是因为这个原因而充满活力.开源软件可以用于你能想象得到的任何应用程序,许多web设计人员 ... 
- Android TintResources Leak
			在使用Android WebView的时候,可能会造成Activity的内存泄漏,这个是Android的Bug,目前发现在WebView内部在使用TintResources时会发生内存泄漏,但是在ap ... 
- HTML的FORM的元素
			form是是HTML的一个重要元素. form的常用控件有 单行文本框<input type="text" value="text" name=" ... 
- github 学习笔记【一】
			这几天在学习github ,其实学了主要用来管理自己的项目!因为要在家里和公司两头做! 所以就开始学习使用!目前熟练几个命令,其他的一边用一遍学吧!想一举成功应该是不太可能的! 反复记忆才能更好,据说 ... 
- redistribute_prefix
			使用分发列表和前缀列表控制路由 拓扑如下 将基本环境(ip和路由协议)配置好,所得到的各个路由表如下 R1: R2: R3: EIGRP和OSPF间的双向重分发 1. 在R2上做重分发 2. ... 
- windows下部署 ISCSI存储
			Write bt xiaoyang 配置篇 这里使用的软件为iscsiTargetqfe 1. 首先安装软件,可在微软官网下载 2. 然后找到安装程序 3. 完成安装后打 ... 
- ajax请求简写
			<script type="text/javascript"> function changle() { $.post( "SendMail", / ... 
- asp.net 小技巧
			文字用一个label标签包起来,设置一个属性:for,其for的值要和复选框的id相同. <p> 1.通过点击文字,就选中复选框</p> <p>文字用一个label ... 
- yaf运行错误:Class 'Yaf_Application' not found
			提示:致命错误 Yaf_Application 基类没有加载进去 一检查:phpinfo() 里yaf 扩展有没有安装上 扩展也安装进去了 这时在分布式配置文件的重写 也是正确 这时百思不得其解,没办 ... 
