题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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]-顺时针打印矩阵相关推荐

  1. 剑指offer面试题29. 顺时针打印矩阵(边界问题)

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 思路 详见链接 代码 class Solution:def spiralOrder(self, matrix:[[int]]) ...

  2. 剑指offer十九之顺时针打印矩阵

    一.题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...

  3. 【剑指offer-Java版】20顺时针打印矩阵

    顺时针打印矩阵:重在理解,毕竟作者分析的那个方法看起来还是蛮复杂的-所以自己写了个接地气的方法 重在逻辑的一个题,一次性完全写对还是比较困难的 public class _Q20 {public vo ...

  4. java程序输出88的0 1矩阵_《剑指Offer》Java实现--顺时针打印矩阵

    题目描述 输入一个矩阵,按照从外向里顺时针的顺序打印出每一个数字.测试用例如下图: 测试数组 思路分析 这道题目并不难,关键在于边界控制!每一层遍历均从左上角开始,逐层往里完成遍历. Java代码实现 ...

  5. 剑指offer(19)顺时针打印矩阵

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...

  6. 剑指offer——面试题20:顺时针打印矩阵

    剑指offer--面试题20:顺时针打印矩阵 Solution1: 可参考leetCode 54题的解法 书上的思路特别好,学习之~ class Solution { public:vector< ...

  7. (补充)【打印1到最大的n位数】剑指offer——面试题12:打印1到最大的n位数

    剑指offer--面试题12:打印1到最大的n位数 此题在牛客网上没有OnlineJudge,在此补充两种做法. 参考网址:https://blog.csdn.net/yanxiaolx/articl ...

  8. java 打印_剑指Offer面试题20(Java版):顺时针打印矩阵

    题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字.例如:如果输入如下矩阵: 1,2,3,4 5,6,7,8 9,10,11,12 13,14,15,16 则依次打印出数字1,2,3, ...

  9. 剑指offer-面试题20.顺时针打印矩阵

    题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字.例如: 输入一个矩阵如下: 1 1 2 3 4 2 5 6 7 8 3 9 10 11 12 4 13 14 15 16 则依次打印 ...

最新文章

  1. 利用广播实现ip拨号——示例
  2. java filereader类_Java FileReader类
  3. 部门角色权限rbac_k8s十 | 一文读懂基于角色的权限控制RBAC
  4. NYOJ 595 乱七八糟
  5. Android编译笔记之五
  6. Codeforces Round #631 (Div. 2) C. Dreamoon Likes Coloring 构造
  7. 面向对象设计与构造第一次总结作业
  8. pitr 原理_PostgeSQL 数据库备份与恢复实验 (PITR)
  9. java 事务嵌套_解惑 spring 嵌套事务
  10. golang 函数一 (定义、参数、返回值)
  11. 移动端通用元件库+app通用元件库+数据展示+操作反馈+通用模板+数据录入+列表页+表单页+详情页+通用版布局+移动端手机模板+业务组件+反馈组件+展示组件+表单组件+导航组件
  12. Python 手册——调用解释器
  13. sklearn 细节 —— SGDClassifier、Perceptron(分类模型)
  14. windows和wsl设置代理
  15. win10怎么用记事本打开html文件,Win10系统怎么打开记事本
  16. 机器学习去除马赛克案例(代码)
  17. 社交网络时代下的网络营销
  18. java——API——ArrayList集合
  19. 工程计算和数据科学中常用的9种测量距离
  20. 生成式对抗网络(GAN)实战——书法字体生成练习赛

热门文章

  1. centos mysql开发包_CentOS 7 安装 MySQL-阿里云开发者社区
  2. 【写作技巧】中文摘要及关键词的撰写
  3. c语言编写conio库函数,c语言库函数头文件注释
  4. 样条曲面_用SolidWorks曲面将六个小圆管向大圆管过渡
  5. python棋子判定_python微信跳一跳系列之棋子定位颜色识别
  6. 三大工艺因素影响百万像素镜头成像质量
  7. Halcon 学习总结——基于动态阈值法、GMM(高斯混合模型)、SVM(支持向量机)的网状物缺陷检测
  8. X 射线成像 新型数字技术 —— CMOS 探测器
  9. 2018.12.2 频谱分析
  10. HTML CSS JS 特殊字符(转义)表