Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

Example:

Input: 3
Output:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
class Solution {
public int[][] generateMatrix(int n) {
int[][] matrix = new int[n][n];
int beginRow = 0, endRow = n - 1;
int beginCol = 0, endCol = n - 1;
int num = 1;
while(beginRow <= endRow && beginCol <= endCol) {
for(int i = beginCol; i <= endCol; i++) {
matrix[beginRow][i] = num;
num += 1;
}
beginRow += 1; for (int i = beginRow; i <= endRow; i++) {
matrix[i][endCol] = num;
num += 1;
}
endCol -= 1;
// no need to check boarder b/c it is square
for (int i = endCol; i >= beginCol; i--) {
matrix[endRow][i] = num;
num += 1;
}
endRow -= 1; for (int i = endRow; i >= beginRow; i--) {
matrix[i][beginCol] = num;
num += 1;
}
beginCol += 1;
}
return matrix;
}
}
												

最新文章

  1. 马后炮之12306抢票工具(四)--抢票Demo,2014年1月9日终结版
  2. 判断是否IPv6网络
  3. raspberry pi 如何汉化显示中文
  4. 从windows到Linux-ubuntu新手
  5. [Angular 2] Dispatching Action with Payloads and type to Reducers
  6. SNMP WINDOWS系统的命令行工具下载
  7. 在Cenos系统安装Python3.5版本,使P2和P3共存
  8. 七月SSL行业新闻回顾
  9. HTML基础教程-段落
  10. YPbPr 和 YCbCr的区别 .
  11. 谈谈如何选择合适的MySQL数据类型
  12. Angular 框架下ng-repeat内部使用tooltip插件的办法
  13. ArcGIS紧凑型缓存存储格式分析
  14. 接口自动化(unittest)
  15. [osg]osg窗口显示和单屏幕显示
  16. redis实现对账(集合比较)功能
  17. Linux下文件的三种时间标记(atime ctime mtime)
  18. Multiple Instance Learning
  19. [leetcode] 204. Count Primes 统计小于非负整数n的素数的个数
  20. 微信小程序-04-详解介绍.json 配置文件

热门文章

  1. win10查看显卡算力
  2. python版本,执行
  3. JNI的第1种写法 及 JNI通过形参修改Java数据
  4. 题解 P2382 【化学分子式】
  5. 谈谈 Act 的依赖注入 和 模板输出 - 回答 drinkjava 同学提问
  6. LeetCode Input Initial Code
  7. [原]你知道怎么使用DebugView查看内核调试信息吗?
  8. C++ 静态成员变量、成员函数
  9. linux中awk的应用
  10. POJ 2796 Feel Good 【单调栈】