zoukankan      html  css  js  c++  java
  • 顺时针打印矩阵

     1 vector<int> spiralOrder(vector<vector<int>>& matrix) {
     2 vector<int> arr;
     3 if(matrix.empty())        
     4   return arr;
     5 int len = matrix.size();
     6 int wid = matrix[0].size();
     7 vector<int> vis(len*wid,0);
     8 int i = 0,j = 0;
     9 bool sign = true;
    10 
    11 while(sign) {
    12   if(i < len && j < wid){
    13       if(vis[i*len+j]==0)  {arr.push_back(matrix[i][j]); vis[i*len+j] = 1;}
    14       if(j+1<wid) { if(vis[i*len+j+1]==0)  { j++; continue; }}
    15       if(i+1 <len) { if(vis[(i+1)*len+j]==0) { i++; continue; }}
    16       if(j > 0) { if(vis[i*len+j-1]==0){ j--; continue;}}
    17       if(i > 0) { if(vis[(i-1)*len+j]==0}{ while(vis[(i-1)*len+j]==0) { i--;
    18                       arr.push_back(matrix[i][j]);  vis[i*len+j] = 1; } }
    19       if(arr.size() == len*wid) sign = false;
    20 }
    21       return arr;
    22 }
    23 }

    解题思路:向右--向下--向左--向上。当输出数组size()与矩阵数组大小相同,结束循环。

    首先:将第一个节点输出

    向右:横坐标加1,标记,输出,直到到达最右边

    向下:纵坐标加1,标记,输出,直到到达最下边

    向左:横坐标-1,标记,输出,直到到达最左边

    向上:纵坐标-1,标记,输出,到达已经标记的下一行

    完成第一次顺时针,不断循环,直到达到循环结束条件

  • 相关阅读:
    Badboy参数化
    Badboy运行脚本
    Badboy中创建Suite, test, step和Template
    美食
    Badboy录制模式
    美食
    BadBoy+JMeter来录制和运行Web测试脚本
    JMeter简介及使用JMeter来访问网站
    软件测试的艺术
    泗泾办小卡需要的材料
  • 原文地址:https://www.cnblogs.com/pengtangtang/p/12987779.html
Copyright © 2011-2022 走看看