zoukankan      html  css  js  c++  java
  • 剑指offer系列——19.顺时针打印矩阵

    Q:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 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.
    A:

        vector<int> printMatrix(vector<vector<int> > matrix) {
            int size1 = matrix[0].size(); //列数
            int size2 = matrix.size(); //行数
            int left = 0, top = 0;
            int right = size1 - 1, down = size2 - 1;
            vector<int> array;
            if(matrix.empty())
                return array;
            while (true) {
                for (int i = left; i <= right; i++)
                    array.push_back(matrix[top][i]);
                if (++top > down)
                    break;
                for (int j = top; j <= down; j++)
                    array.push_back(matrix[j][right]);
                if (--right < left)
                    break;
                for (int m = right; m >= left; m--)
                    array.push_back(matrix[down][m]);
                if (--down < top)
                    break;
                for (int n = down; n >= top; n--)
                    array.push_back(matrix[n][left]);
                if (++left > right)
                    break;
            }
            return array;
        }
    

    P.S.这个题就是如何按顺序把矩阵输出出来。

  • 相关阅读:
    软件工程基础之二——阅读《软件工程基础》的问题
    软件工程基础之一——个人介绍与计划
    个人介绍
    sudoku
    GitHub地址
    疑问②
    概览提问①
    jsp内置对象
    tomcat的环境变量配置
    构造方法的重载代码
  • 原文地址:https://www.cnblogs.com/xym4869/p/12271322.html
Copyright © 2011-2022 走看看