Spiral Matrix II(leetcode)
2014-11-26 16:03
507 查看
题目:
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:
题目来源:https://oj.leetcode.com/problems/spiral-matrix-ii/
解题思路:同Spiral
Matrix (leetcode)
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 ] ]
题目来源:https://oj.leetcode.com/problems/spiral-matrix-ii/
解题思路:同Spiral
Matrix (leetcode)
#include<iostream> #include<vector> using namespace std; vector<vector<int> > generateMatrix(int n) { if(n<=0) return vector<vector<int> >(); vector<vector<int> > matrix(n,vector<int>(n,0));; int row=0,col=0,k=0; while(1) { if(row>((n-1)>>1))//行和列是相等的,而且矩阵是方阵,不用判断列了 break; for(int i=col;i<matrix.front().size()-col;i++) matrix[row][i]=++k; for(int i=row+1;i<matrix.size()-row;i++) matrix[i][matrix.size()-col-1]=++k; if(matrix.size()==row*2+1)//即当前的行是一个独行 break; for(int i=matrix.size()-col-2;i>=col;i--) matrix[matrix.size()-row-1][i]=++k; if(matrix.size()==col*2+1)//即当前的列是一个独列 break; for(int i=matrix.size()-row-2;i>row;i--) matrix[i][col]=++k; row++; col++; } return matrix; } int main() { const int N=3; vector<vector<int> > result=generateMatrix(N); system("pause"); return 0; }
相关文章推荐
- leetcode 59. Spiral Matrix II
- LeetCode -- Spiral Matrix II
- 【LeetCode】Spiral Matrix II
- [LeetCode] 59. Spiral Matrix II
- [leetcode]Spiral Matrix II
- LeetCode-Spiral Matrix II
- Spiral Matrix II -- LeetCode
- LeetCode 59 Spiral Matrix II
- [LeetCode] Spiral Matrix II
- leetcode ----59. Spiral Matrix II
- LeetCode_Spiral Matrix II
- leetcode -- Spiral Matrix II
- LeetCode | Spiral Matrix II(螺旋矩阵填充数据)
- LeetCode: Spiral Matrix II
- <LeetCode OJ> 54 / 59 Spiral Matrix( I / II )
- Leetcode-Spiral Matrix II
- LeetCode 54/59. Spiral Matrix i, ii
- 62 leetcode - Spiral Matrix II
- [C++]LeetCode: 111 Spiral Matrix II (螺旋写入矩阵)
- leetcode - Spiral Matrix II