剑指offer:面试题29. 顺时针打印矩阵
题目:顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
示例 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
解题:
class Solution {
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {//判断是否为空if(matrix.size() == 0 || matrix[0].size() == 0) return {};vector<int> res;int top = 0;int bottom = matrix.size() - 1;int left = 0;int right = matrix[0].size() - 1;while(true){for(int i=left;i<=right;i++){res.push_back(matrix[top][i]);}//top下移top++;if(top > bottom ) break;for(int i=top;i<=bottom;i++){res.push_back(matrix[i][right]);}right--;if(right < left) break;for(int i = right;i>=left;i--){res.push_back(matrix[bottom][i]);}bottom -- ;if(bottom < top) break;for(int i=bottom;i>=top;i--){res.push_back(matrix[i][left]);}left++;if(left > right) break;}return res;}
};
剑指offer:面试题29. 顺时针打印矩阵相关推荐
- 剑指offer面试题29. 顺时针打印矩阵(边界问题)
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 思路 详见链接 代码 class Solution:def spiralOrder(self, matrix:[[int]]) ...
- 剑指offer面试题[20]-顺时针打印矩阵
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...
- 剑指offer十九之顺时针打印矩阵
一.题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...
- java程序输出88的0 1矩阵_《剑指Offer》Java实现--顺时针打印矩阵
题目描述 输入一个矩阵,按照从外向里顺时针的顺序打印出每一个数字.测试用例如下图: 测试数组 思路分析 这道题目并不难,关键在于边界控制!每一层遍历均从左上角开始,逐层往里完成遍历. Java代码实现 ...
- 剑指offer(19)顺时针打印矩阵
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...
- (补充)【打印1到最大的n位数】剑指offer——面试题12:打印1到最大的n位数
剑指offer--面试题12:打印1到最大的n位数 此题在牛客网上没有OnlineJudge,在此补充两种做法. 参考网址:https://blog.csdn.net/yanxiaolx/articl ...
- 剑指offer——面试题29:数组中出现次数超过一半的数字
剑指offer--面试题29:数组中出现次数超过一半的数字 Solution1: 20180902日整理 注意几点: 1.若下一个数字和我们之前保存的数字相同,则次数 +1 2.若下一个数字和我们之前 ...
- 剑指offer面试题[29]-数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...
- 【剑指offer-Java版】20顺时针打印矩阵
顺时针打印矩阵:重在理解,毕竟作者分析的那个方法看起来还是蛮复杂的-所以自己写了个接地气的方法 重在逻辑的一个题,一次性完全写对还是比较困难的 public class _Q20 {public vo ...
最新文章
- R语言ggplot2可视化:ggplot2中使用element_text函数设置轴标签文本粗体字体(bold text,只设置x轴的标签文本使用粗体字体)
- GridPanel的一些小技巧
- 1039 Course List for Student (25 分)_33行代码AC
- 网站CSS样式不起作用,或只有一部分起作用?随手记
- 买了服务器之后如何操作系统,买了服务器之后如何操作系统
- 【英语学习】【WOTD】zero-sum 释义/词源/示例
- eclipse里maven install时,报错提示jdk为无效的目标版本:1.7
- Android中需要了解的数据结构(一)
- 通过注册表修改键盘映射
- HTML获奖作品,2015年配色优秀的20个网页设计作品 含配色方案
- oracle vm 强制关机,[已解决]Virtualbox安装archlinux过程中客户机和宿主机全部卡死...
- ORACLE RAC 一节点出现Suspending MMON slave action kewrmrfsa_ for 82800 seconds
- 开源一个 Python 中文数据结构和算法教程
- 论文阅读:《Rethinking Pseudo-LiDAR Representation》
- pwn暑假训练(九) emem原来昨天是8今天是9
- 使用remote desktop manager管理windows远程桌面连接
- python全栈开发中级_python全栈开发中级班全程笔记(第二模块)第一部分:文件处理...
- 极光 php服务器,极光 php推送
- 3dmax火车运行制作
- 黄芪破壁草本的两种煲汤做法
热门文章
- ElasticSearch(六) Update API
- linux下卸载自带jdk,重新安装jre运行环境
- Go 学习笔记(10)— 数组定义、数组声明、数组初始化、访问数组、数组相等、向函数传递数组
- unity3d-----Collider 组件参考
- 图片和文件上传的两款插件
- 一.Timesten安装
- Windows图标:有一些你未必知道的东西
- listener.ora、sqlnet.ora、tnsnames.ora 详解
- rancher 外置 mysql_rancher使用外部数据库无法正常使用
- php url模式在哪修改,如何在nginx环境中启用php的pathinfo URL模式[修正]