剑指offer-19.顺时针打印指针
来源:互联网 发布:软件外包供应商管理 编辑:程序博客网 时间:2024/06/05 16:46
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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 row = matrix.size(); //矩阵行 int col = matrix[0].size(); //矩阵列 int left = 0, right = col - 1, top = 0, bottom = row - 1; if (row == 0 || col == 0) return res; while (left <= right && top <= bottom) { for (int i = left; i <= right; i++) { res.push_back(matrix[top][i]); } for (int i = top + 1; i <= bottom; i++) { res.push_back(matrix[i][right]); } if (top != bottom) for (int i = right - 1; i >= left; i--) { res.push_back(matrix[bottom][i]); } if (left != right) for (int i = bottom - 1; i > top; i--) { res.push_back(matrix[i][left]); } top++; left++; right--; bottom--; } return res; }};
0 0
- 剑指offer-19.顺时针打印指针
- 剑指Offer--19.顺时针打印矩阵
- [剑指Offer] 19.顺时针打印矩阵
- 剑指offer:顺时针打印数组
- 【剑指offer】顺时针打印矩阵
- 剑指offer--顺时针打印矩阵
- 剑指offer--顺时针打印矩阵
- 剑指offer 顺时针打印矩阵
- 剑指offer:顺时针打印矩阵
- 《剑指offer》顺时针打印矩阵
- 剑指offer-顺时针打印矩阵
- 剑指offer 顺时针打印矩阵
- 剑指offer:顺时针打印矩阵
- 剑指offer-顺时针打印矩阵
- 剑指offer 顺时针打印矩阵
- 剑指offer:顺时针打印矩阵
- [剑指offer]顺时针打印矩阵
- 剑指Offer-顺时针打印数组
- AngularJS-组件化<component>
- 朴素贝叶斯分类文本 python实现
- centos安装gitlab-ce
- JAVA知识点总结-08/9
- 百度2017实习编程题
- 剑指offer-19.顺时针打印指针
- 水仙花数
- awk边学边记
- Searches on Mobile Solution for OCR/ID Reader/MRZ Reader
- linux进程线程下简单的消费者和生产者
- 单词的理解 —— 词义的变化(翻译)
- 图解http学习笔记2.简单http协议
- 字符串水题(substr的使用+简单优化)
- mysql中对order by的函数substring_index() , find_in_set()使用