码迷,mamicode.com
首页 > 其他好文 > 详细

Spiral Matrix II

时间:2014-08-26 19:19:56      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   io   for   ar   div   log   

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

思路:使用for循环依次向右、向下、向左、向上设置矩阵对应位置的值。注意边界条件。

 1 class Solution {
 2 public:
 3     vector<vector<int>> generateMatrix( int n ) {
 4         vector<vector<int>> matrix( n, vector<int>( n, 0 ) );
 5         int val = 1;
 6         for( int step = 0; step < (n+1)/2; ++step ) {
 7             for( int j = step; j < n-step; ++j ) {
 8                 matrix[step][j] = val++;
 9             }
10             for( int i = step+1; i < n-step; ++i ) {
11                 matrix[i][n-step-1] = val++;
12             }
13             for( int j = n-step-2; j >= step; --j ) {
14                 matrix[n-step-1][j] = val++;
15             }
16             for( int i = n-step-2; i > step; --i ) {
17                 matrix[i][step] = val++;
18             }
19         }
20         return matrix;
21     }
22 };

 

Spiral Matrix II

标签:style   blog   color   使用   io   for   ar   div   log   

原文地址:http://www.cnblogs.com/moderate-fish/p/3936018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!