LeetCode 面试题29. 顺时针打印矩阵
2020-05-07 04:16
891 查看
LeetCode 面试题29. 顺时针打印矩阵
大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客
本文原创为亓官劼,请大家支持原创,部分平台一直在盗取博主的文章!!!
博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客
题目
难度 简单
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
示例 1:
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]
示例 2:
输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:[1,2,3,4,8,12,11,10,9,5,6,7]
限制:
0 <= matrix.length <= 100
0 <= matrix[i].length <= 100
题解:
题目要求我们按顺时针进行打印,这里面使用的是返回一个
vector,而不是真的打印,我们只需要按顺时针的顺序来将数据添加到vector中即可,要注意一下边界问题,完整的题解代码为:
class Solution { public: vector<int> spiralOrder(vector<vector<int>>& matrix) { vector<int> ans; if(matrix.size() == 0) return ans; int row = matrix.size(); int col = matrix[0].size(); int num = row * col; int circle = 0; while(num){ // right for(int i = circle; (i < col - circle)&# i++){ ans.push_back(matrix[circle][i]); num--; } // down for(int i = 1+circle; (i <= row-circle-1)&# i++){ ans.push_back(matrix[i][col-circle-1]); num--; } // left for(int i = col-circle-2; (i >= circle)&# i--){ ans.push_back(matrix[row-circle-1][i]); num--; } // up for(int i = row-circle-2; (i >= circle+1)&# i--){ ans.push_back(matrix[i][circle]); num--; } circle++; } return ans; } };
大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客
本文原创为亓官劼,请大家支持原创,部分平台一直在盗取博主的文章!!!
博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客
亓官劼 博客专家 原创文章 254获赞 2900访问量 40万+ 关注 私信相关文章推荐
- LeetCode 面试题42. 连续子数组的最大和
- 剑指Offre 面试题05. 替换空格
- 最详细HashMap底层详解(附常见面试题)
- 程序员是如何一步一步被诈骗的?
- 大厂面试题:求根号2简单?高级算法你肯定不会
- 阿里P8大神Frank:这4道面试题我一定会问,答好3题P6稳,全部OK考虑P7
- 如何评估一项技术是否值得长期投入? - 职场生涯
- 程序员在二线城市工作爽吗?
- 30多岁的程序员,你的出路在哪儿?
- 面试不易,控场情况下,感觉少要了1万!
- 学习笔记(04):程序员的数学:概率统计-看似相近却有本质区别
- 学习笔记(03):程序员的数学:概率统计-边缘概率与条件概率-看似相近却有本质区别...
- 学习笔记(02):程序员的数学:概率统计-概率分布-随机变量的生成模式
- 华为面试题 - 0和1的变换
- 最能激怒程序员的19句话,最后1句太狠!
- 九章算法 | 美团面试算法题:跳跃游戏
- 2019年6月游戏区块链_2019年您需要了解的6种区块链职业选择
- 字符会编码 数字需要编码吗_编码技巧将提升您的数字营销职业
- 全栈工程师定义_定义软件工程师职业目标的5种方法
- 为什么选择软件测试这个职业_为什么选择软件测试作为职业道路?