顺时针打印矩阵
2017-08-10 14:19
169 查看
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.
没什么水平的题,不能通过的原因可能是不太细心
思路:记录矩形四个角的坐标
(x, y) (x, col-x-1)
(row-x-1, y) (row-x-1, col-x-1)
每次循环递增x和y就OK
code:
没什么水平的题,不能通过的原因可能是不太细心
思路:记录矩形四个角的坐标
(x, y) (x, col-x-1)
(row-x-1, y) (row-x-1, col-x-1)
每次循环递增x和y就OK
code:
class Solution { public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> answer; int row= matrix.size(); if(0 == row) { return answer; } int col= matrix[0].size(); if(0 == col) { return answer; } int totalNumber= row* col; int x= 0,y= 0; int cutIdx= 0; while(true) { for(int i= y; i<= col-x-1; ++i) { answer.push_back(matrix[x][i]); if(totalNumber == answer.size()) { return answer; } } for(int i= x+1; i<= row-x-1; ++i) { answer.push_back(matrix[i][col-1-x]); if(totalNumber == answer.size()) { return answer; } } for(int i= col-x-2; i>= y; --i) { answer.push_back(matrix[row-x-1][i]); if(totalNumber == answer.size()) { return answer; } } for(int i= row-x-2; i>= x+1; --i) 4000 { answer.push_back(matrix[i][y]); if(totalNumber == answer.size()) { return answer; } } ++x; ++y; } return answer; } };
相关文章推荐
- 顺时针打印矩阵
- 顺时针打印矩阵
- [剑指offer]顺时针打印矩阵
- 1,2,3…n*n 的数字按照顺时针螺旋的形式打印成矩阵(递归)
- 剑指offer之顺时针打印矩阵
- 剑指offer题解C++【19】顺时针打印矩阵
- 顺时针方向打印矩阵
- 顺时针打印矩阵
- PHP实现顺时针打印矩阵(螺旋矩阵)的方法示例
- 顺时针打印矩阵(C语言代码)
- 顺时针打印矩阵
- 面试题20:顺时针打印矩阵递归和非递归两种方式实现
- 剑指Offer学习总结-顺时针打印矩阵
- LeetCode | Spiral Matrix(顺时针打印矩阵)
- 顺时针打印矩阵 (JAVA实现)
- 顺时针打印矩阵
- 【剑指offer】题目20 顺时针打印矩阵
- 剑指Offer——(19)顺时针打印矩阵
- 《苦练算法》-剑指Offer- 十九、顺时针打印矩阵 -python编写
- 顺时针打印矩阵