leetcode:Spiral Matrix II 【Java】
来源:互联网 发布:pl sql developer下载 编辑:程序博客网 时间:2024/06/14 23:07
一、问题描述
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n = 3
,
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]
二、问题分析
利用分治算法,参见博文生成数字旋转方阵,这里只是生成区域的顺序发生变化。
三、算法代码
public class Solution { public int[][] generateMatrix(int n) { int [][] result = new int[n][n]; generateRotate(result, 1, 0, n); return result; } //生成旋转矩阵public void generateRotate(int [][] result, int number, int begin, int size){if(size == 1){result[begin][begin] = number;return;}if(size == 0){return;}//生成区域Aint i = begin;int j = begin;for(int k = 0; k < size - 1; k++){result[i][j] = number;number++;j++;}//生成区域Bfor(int k = 0; k < size - 1; k++){result[i][j] = number;number++;i++;}//生成区域Cfor(int k = 0; k < size - 1; k++){result[i][j] = number;number++;j--;}//生成区域Dfor(int k = 0; k < size - 1; k++){result[i][j] = number;number++;i--;}//递归调用generateRotate(result, number, begin + 1, size - 2);}}
0 0
- [Leetcode] Spiral Matrix II (Java)
- [LeetCode][Java] Spiral Matrix II
- leetcode:Spiral Matrix II 【Java】
- 【LeetCode-Java】54. Spiral Matrix+59. Spiral Matrix II
- LeetCode: Spiral Matrix II
- LeetCode Spiral Matrix II
- [Leetcode] Spiral Matrix II
- LeetCode : Spiral Matrix II
- [LeetCode] Spiral Matrix II
- [LeetCode]Spiral Matrix II
- [leetcode]Spiral Matrix II
- LeetCode-Spiral Matrix II
- [leetcode] Spiral Matrix II
- LeetCode - Spiral Matrix II
- Leetcode: Spiral Matrix II
- 【LeetCode】Spiral Matrix II
- Leetcode Spiral Matrix II
- [LeetCode] Spiral Matrix II
- LeetCode OJ刷题历程——Remove Nth Node From End of List
- C++扬帆远航——1
- 【C#】面向对象基础—属性、方法、结构
- TP整合微信遇到的一系列问题
- unity学习阶段笔记
- leetcode:Spiral Matrix II 【Java】
- Xcode里一个工程(Project)多个项目(target)做版本控制讨论
- 1.跨浏览器通讯之iframe 以及window.open
- 华为oj 将真分数分解为埃及分数
- hdoj-5636===dfs枚举新增的路有木有走
- Java的集合详细总结
- Android中图片资源格式的转换
- CodeForces - 617B Chocolate (规律)
- 关于socket buffer size的调优