• 剑指offer——顺时针打印矩阵


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

    例如,如果输入如下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.

    C++代码:

    class Solution4 {
    public:
    	vector<int> printMatrix(vector<vector<int>> matrix) {
            vector<int> result;
    		result.clear();
    		int row = matrix.size();
    		int collor = matrix[0].size();
    		
    		int circle = ((row < collor ? row : collor) - 1) / 2 + 1;
    		for (int i = 0; i < circle; i++) {
    			for (int j = i; j < collor - i; j++)
    				result.push_back(matrix[i][j]);
    			for (int k = i + 1; k < row - i; k++)
    				result.push_back(matrix[k][collor - 1 - i]);
    			for (int m = collor - i - 2; (m >= i) && (row - i - 1 != i); m--)
    				result.push_back(matrix[row - i - 1][m]);
    			for (int n = row - i - 2; (n > i) && (collor - i - 1 != i); n--)
    				result.push_back(matrix[n][i]);
    		}
    		return result;
    	}
    };
    天上我才必有用,千金散尽还复来!
  • 相关阅读:
    数据库设计三大范式
    MYSQL语句
    PHP数据库环境配置
    java空心菱形
    java基础练习2
    java基础练习
    java 控制台输入
    java 基础功能
    Java包装
    JS里的DOM操作注意点
  • 原文地址:https://www.cnblogs.com/lutaishi/p/13436298.html
Copyright © 2020-2023  润新知