剑指offer(19)—顺时针打印矩阵
来源:互联网 发布:丽江知乎 编辑:程序博客网 时间:2024/06/05 17:17
顺时针打印矩阵
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.
思路
先是第一行从左向右打印,到达最右时,从上向下打印,到达最下时从右向左打印,到达最左时从下向上打印,到达最上时从新起点再从左向右打印。。。不断重复
代码
class Solution {public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> res; int Rows = matrix.size(); if(Rows == 0) return res; int Cols = matrix[0].size(); int i = 0, j = 0; int start = 0; while(2 * start < Cols && 2 * start < Rows){ int endX = Cols - 1 - start; int endY = Rows - 1 - start; //从左向右 for(int j = start; j <= endX; j++) res.push_back(matrix[start][j]); //从上向下 if(start < endY){ for(int i = start + 1; i <= endY; i++) res.push_back(matrix[i][endX]); } //从右向左 if(start < endX && start < endY){ for(int j = endX - 1; j >= start; j--) res.push_back(matrix[endY][j]); } //从下向上 if(start < endY && start < endX){ for(int i = endY - 1; i > start; i--) res.push_back(matrix[i][start]); } start++; } return res; }};
阅读全文
0 0
- 剑指offer(19)—顺时针打印矩阵
- 剑指offer 19 顺时针打印矩阵
- 剑指Offer(19)______顺时针打印矩阵
- 牛客网-剑指offer-19-顺时针打印矩阵
- 《剑指offer》——顺时针打印矩阵
- 《剑指offer》——顺时针打印矩阵
- 剑指offer——顺时针打印矩阵
- 剑指offer——顺时针打印矩阵
- 剑指offer——顺时针打印矩阵
- 剑指offer——顺时针打印矩阵
- 剑指offer——顺时针打印矩阵
- 剑指offer—顺时针打印矩阵
- 剑指Offer——(19)顺时针打印矩阵
- 剑指Offer—19—顺时针打印矩阵
- 【剑指offer】顺时针打印矩阵
- 剑指offer--顺时针打印矩阵
- 剑指offer--顺时针打印矩阵
- 剑指offer 顺时针打印矩阵
- 各类排序算法
- Java保留小数位的4种方法
- java反射基础
- 洛谷p1108低价购买
- vc++数据库操作的学习笔记
- 剑指offer(19)—顺时针打印矩阵
- Linux启动关闭图形界面
- POJ 3261 Milk Patterns (后缀树组)
- Visual Studio 2012
- 类-成员变量和局部变量
- python+selenium自动化软件测试(第9章) :Logging模块
- apache 2.4 访问权限配置
- bzoj4818 [Sdoi2017]序列计数
- 欢迎使用CSDN-markdown编辑器