zoukankan      html  css  js  c++  java
  • 【剑指offer】顺时针打印矩阵

    题目链接:顺时针打印矩阵

     

    题意:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字.

     

    题解:画个图。模拟。

    1  2  3  4

    5  6  7  8

    9  10  11  12

    13  14  15  16

    输出 1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10

     

    发现规律,从左向右走,再从上向下走,再从右向左走,再从下向上走。然后重复这个过程。


     

    代码:

     1 class Solution {
     2 public:
     3     vector<int> printMatrix(vector<vector<int> > matrix) {
     4         vector<int> ans;
     5         if(matrix.empty())    return ans;
     6         int l=0,r=matrix[0].size()-1,up=0,down=matrix.size()-1;
     7         while(1){
     8             for(int i = l; i <=r; i++)    ans.push_back(matrix[up][i]);
     9             if(++up > down)    break;
    10             
    11             for(int i = up; i <= down; i++)    ans.push_back(matrix[i][r]);
    12             if(--r < l)    break;
    13             
    14             for(int i = r; i >= l; i--)    ans.push_back(matrix[down][i]);
    15             if(--down < up)    break;
    16             
    17             for(int i = down; i >= up ;i--)    ans.push_back(matrix[i][l]);
    18             if(++l > r) break;
    19         }
    20         return ans;
    21     }
    22 };
  • 相关阅读:
    git command
    MySQL命令行学习
    添加react-router
    nodejs 安装出错总结
    切换分支之后,意外出现的,待提交的改变
    git diff
    git log
    搜索的技巧
    x-shell code
    css汇总
  • 原文地址:https://www.cnblogs.com/Asumi/p/12403794.html
Copyright © 2011-2022 走看看