剑指offer面试题[20]-顺时针打印矩阵
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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) {int row=matrix.size();int col=matrix[0].size();if(row==0&&col==0)return matrix[0];int start=0;vector<int> result;while(row>start*2&&col>start*2) //每一个圈占用两行,画图分析{int endx=col-1-start;int endy=row-1-start;//从左往右打印当前圈的第一行for(int i=start;i<=endx;i++)result.push_back(matrix[start][i]);//从上往下打印if(start<endy){ for(int i=start+1;i<=endy;i++) //start+1是因为上面从左往右已经把matrix[start][endx]打印了result.push_back(matrix[i][endx]);}//从右往左打印if(start<endx&&start<endy) //必须起始的行和列均大于剩余行和列{ for(int i=endx-1;i>=start;i--) result.push_back(matrix[endy][i]);}//从下往上打印if(start<endx&&start<endy-1) //必须起始的行和列均大于剩余行和列{ for(int i=endy-1;i>=start+1;i--) //start+1是因为上面从左往右已经把matrix[start][endx]打印了result.push_back(matrix[i][start]);}start++;}return result;}
};
剑指offer面试题[20]-顺时针打印矩阵相关推荐
- 剑指offer面试题29. 顺时针打印矩阵(边界问题)
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 思路 详见链接 代码 class Solution:def spiralOrder(self, matrix:[[int]]) ...
- 剑指offer十九之顺时针打印矩阵
一.题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...
- 【剑指offer-Java版】20顺时针打印矩阵
顺时针打印矩阵:重在理解,毕竟作者分析的那个方法看起来还是蛮复杂的-所以自己写了个接地气的方法 重在逻辑的一个题,一次性完全写对还是比较困难的 public class _Q20 {public vo ...
- 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, ...
- 剑指offer——面试题20:顺时针打印矩阵
剑指offer--面试题20:顺时针打印矩阵 Solution1: 可参考leetCode 54题的解法 书上的思路特别好,学习之~ class Solution { public:vector< ...
- (补充)【打印1到最大的n位数】剑指offer——面试题12:打印1到最大的n位数
剑指offer--面试题12:打印1到最大的n位数 此题在牛客网上没有OnlineJudge,在此补充两种做法. 参考网址:https://blog.csdn.net/yanxiaolx/articl ...
- java 打印_剑指Offer面试题20(Java版):顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字.例如:如果输入如下矩阵: 1,2,3,4 5,6,7,8 9,10,11,12 13,14,15,16 则依次打印出数字1,2,3, ...
- 剑指offer-面试题20.顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字.例如: 输入一个矩阵如下: 1 1 2 3 4 2 5 6 7 8 3 9 10 11 12 4 13 14 15 16 则依次打印 ...
最新文章
- 利用广播实现ip拨号——示例
- java filereader类_Java FileReader类
- 部门角色权限rbac_k8s十 | 一文读懂基于角色的权限控制RBAC
- NYOJ 595 乱七八糟
- Android编译笔记之五
- Codeforces Round #631 (Div. 2) C. Dreamoon Likes Coloring 构造
- 面向对象设计与构造第一次总结作业
- pitr 原理_PostgeSQL 数据库备份与恢复实验 (PITR)
- java 事务嵌套_解惑 spring 嵌套事务
- golang 函数一 (定义、参数、返回值)
- 移动端通用元件库+app通用元件库+数据展示+操作反馈+通用模板+数据录入+列表页+表单页+详情页+通用版布局+移动端手机模板+业务组件+反馈组件+展示组件+表单组件+导航组件
- Python 手册——调用解释器
- sklearn 细节 —— SGDClassifier、Perceptron(分类模型)
- windows和wsl设置代理
- win10怎么用记事本打开html文件,Win10系统怎么打开记事本
- 机器学习去除马赛克案例(代码)
- 社交网络时代下的网络营销
- java——API——ArrayList集合
- 工程计算和数据科学中常用的9种测量距离
- 生成式对抗网络(GAN)实战——书法字体生成练习赛
热门文章
- centos mysql开发包_CentOS 7 安装 MySQL-阿里云开发者社区
- 【写作技巧】中文摘要及关键词的撰写
- c语言编写conio库函数,c语言库函数头文件注释
- 样条曲面_用SolidWorks曲面将六个小圆管向大圆管过渡
- python棋子判定_python微信跳一跳系列之棋子定位颜色识别
- 三大工艺因素影响百万像素镜头成像质量
- Halcon 学习总结——基于动态阈值法、GMM(高斯混合模型)、SVM(支持向量机)的网状物缺陷检测
- X 射线成像 新型数字技术 —— CMOS 探测器
- 2018.12.2 频谱分析
- HTML CSS JS 特殊字符(转义)表