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

Spiral Matrix II

时间:2014-08-01 18:54:02      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   for   div   amp   res   

这道题实质是用螺旋线的形式遍历二维数组,而且这种遍历方式有很强的规律性,从最外层开始一直到最里层,而且每层都按顺时针的方向遍历。根据这种规律性,我们可以用两层循环,在遍历的同时对二维数组对应元素重新赋值,第一层循环是层数遍历,第二层循环是每一层元素遍历(值得注意的一点是顺时针遍历)。

class Solution {
public:
    vector<vector<int> > generateMatrix(int n) {
        vector<vector<int>> res = vector<vector<int>>(n,vector<int>(n,0));
     //层数遍历  
for(int i = 0; i <= n/2; i++){
       //top
for(int col = i; col < n - i; col++){ if(i == 0 && col == 0) res[i][col] = 1; else res[i][col] = res[i][col-1] + 1; }
     //right
for(int row = i + 1; row < n - i; row++) res[row][n-i-1] = res[row-1][n-i-1] + 1;
       //down
for(int col = n-i-2; col >= i; col--){ res[n-i-1][col] = res[n-i-1][col+1] + 1; }
      //left
for(int row = n-i-2; row > i; row--){ res[row][i] = res[row+1][i] + 1; } } return res; } };

 

Spiral Matrix II,布布扣,bubuko.com

Spiral Matrix II

标签:style   blog   color   io   for   div   amp   res   

原文地址:http://www.cnblogs.com/Kai-Xing/p/3885328.html

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