Spiral Matrix II
2016-02-28 22:46
316 查看
题目:
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:
python:
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 ] ] CPP:
class Solution { public: vector<vector<int>> generateMatrix(int x) { vector<vector<int>> result; if (x == 0) { return result; } else { vector<int> v(x); for (int i = 0; i < x; i++) { result.push_back(v); } } int r = 0; //第几圈 int i; //left to right int a = 1; while (r < x / 2) { for (i = r; i < x - r; i++) { result[r][i] = a; a++; } //up to down for (i = r + 1; i < x - r ; i++) { result[i][x - r-1] = a; a++; } //right to left for (i = x - r - 2; i >= r; i--) { result[x - r-1][i] = a; a++; } //down to up for (i = x - r - 2; i > r; i--) { result[i][r] = a; a++; } r++; } if(2*r !=x) { result[r][r] = a; } return result; } };
python:
class Solution(object): def generateMatrix(self,n): ans = [] for x in range(n): ans.append([0]*n) mini,minj,maxi,maxj = 0,0,n-1,n-1 num = 1 while maxi >= mini and maxj >= minj: #left to right for j in range(minj,maxj+1): ans[minj][j] = num num +=1 mini += 1 #up to down for i in range(mini,maxi+1): ans[i][maxj] = num num +=1 maxj -= 1 #right to left for j in range(maxj,minj-1,-1): ans[maxi][j] = num num +=1 maxi -=1 #down to up for i in range(maxi,mini-1,-1): ans[i][minj] = num num +=1 minj += 1 return ans;
相关文章推荐
- 3-9-模拟银行排队过程-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版
- mktime的使用
- Android性能优化——优化下载以高效地访问网络
- ROS学习--轻松使用tf
- WPF中的DataGrid的RowDetail显示问题
- C语言字符串操作总结大全(超详细)
- 【MySQL】探究之TIMESTAMP
- linux内核分析第一周学习笔记
- 关于 adjustsFontSizeToFitWidth 的使用
- 第三次作业
- 分享在winform下实现左右布局多窗口界面-续篇
- 使用@Controller注解为什么要配置<mvc:annotation-driven />
- Linux下获取系统代理信息
- Nginx配置文件详解
- Kth Smallest Element in a BST
- Spiral Matrix
- 10. Regular Expression Matching-hard
- Password Validation using regular expressions(JavaScript)
- 数据包解析(基于wireshark)——物理层Frame
- PL/SQL之函数处理