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 ]
]

【题目分析】

与Spiral Matrix不同,这个题目要求生成一个方阵,方阵的值是螺旋递增的。


【思路】

其实这个题目与上一个大同小异,他们遍历矩阵的顺序是相同的,只要把取值变为赋值就可以了。


【java代码】

 public class Solution {
public int[][] generateMatrix(int n) {
int[][] matrix = new int[n][n]; int top = 0;
int bottom = n-1;
int left = 0;
int right = n-1;
int num = 1; while(true){
for(int i = left; i <= right; i++) matrix[top][i] = num++;
top++;
if(left > right || top > bottom) break; for(int i = top; i <= bottom; i++) matrix[i][right] = num++;
right--;
if(left > right || top > bottom) break; for(int i = right; i >= left; i--) matrix[bottom][i] = num++;
bottom--;
if(left > right || top > bottom) break; for(int i = bottom; i >= top; i--) matrix[i][left] = num++;
left++;
if(left > right || top > bottom) break;
} return matrix;
}
}

最新文章

  1. 在Spring-Mybatis-Restful中配置多数据源的properties文件
  2. 使用javamail发信过程中的一些问题及解决方法
  3. iOS开发者必备的10款工具
  4. BZOJ-1699 Balanced Lineup 线段树区间最大差值
  5. 让多个Fragment 切换时不重新实例化、FragmentTabHost切换Fragment时避免UI重新加载
  6. MySQL删除重复记录只保留一条
  7. USACO Section 2.3: Zero Sum
  8. BufferedWriter和BufferedReader使用方法
  9. prmopt 提示框接收字符串,输入后按确定弹出警告框,警告内容为逆序的字符串
  10. [jQuery编程挑战]007 切换数据表格的行列
  11. SGU 194 Reactor Cooling ——网络流
  12. iOS 设置控件圆角、文字、字体
  13. 201521123076 《Java程序设计》 第十四周学习总结
  14. Linux中安装MySQL
  15. day059-60 ajax初识 登录认证练习 form装饰器, form和ajax上传文件 contentType
  16. Oracle监听已经启动了 sqlplus / as sysdba 仍然报 ERROR:ORA-12560
  17. html5学习笔记——基础
  18. 利用WCF实现上传下载文件服务
  19. SpingMVC的&lt;context:component-scan&gt;包扫描踩坑记录
  20. PostgreSQL主备切换

热门文章

  1. Rails 执行 rails server 报错 Could not find a JavaScript runtime
  2. Jquery 操作DropDownList 根据条件选中
  3. vue对比其他框架
  4. #js#简单的在线计算器
  5. iOS 最新App提交上架流程及部分问题的解决方案2016.12.21,感谢原博主!!!
  6. c#发送http请求注意
  7. 在.Net MVC中自定义ValidationAttribute标签对Model中的属性做验证
  8. 绝对路径&amp;相对路径
  9. echarts中,y轴文本倾斜
  10. js的变量声明以及变量提升