牛客题霸 转圈打印矩阵 C++题解/答案

题目描述

给定一个整型矩阵matrix,请按照顺时针转圈的方式打印它。
示例1
输入
复制
[[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]

题解:

题意很明确,就是让顺时针走矩阵
直接模拟就行

如图一样,设

int end=n-1;
int beg=0;
int l=0;
int r=m-1;

四个变量,分别表示矩形的上下和左右,然后按照图中红色箭头的顺序一样存入vectorsum内即可
当(end = = beg)时,说明行的已经取完,就不用再取了
(l = = r)时也是一样
自己模拟模拟过程就能感受出来

代码:

class Solution {public:/*** * @param matrix int整型vector<vector<>> the matrix* @return int整型vector*/vector<int> printMatrix(vector<vector<int> >& matrix) {// write code hereint n=matrix.size();//lieint m=matrix[0].size();//hangvector<int>sum;int end=n-1;int beg=0;int l=0;int r=m-1;int i;while(end>=beg&&l<=r){for(int i=l;i<=r;i++)sum.push_back(matrix[beg][i]);for(int i=beg+1;i<=end;i++){sum.push_back(matrix[i][r]);}for(int i=r-1;i>=l;i--){if(end==beg)break;sum.push_back(matrix[end][i]);}for(int i=end-1;i>=beg+1;i--){if(l==r)break;sum.push_back(matrix[i][l]);}beg++;end--;l++;r--;}return sum;}
};

牛客题霸 转圈打印矩阵 C++题解/答案相关推荐

  1. 牛客题霸 [栈和排序] C++题解/答案

    牛客题霸 [栈和排序] C++题解/答案 题目描述 给你一个1->n的排列和一个栈,入栈顺序给定 你要在不打乱入栈顺序的情况下,对数组进行从大到小排序 当无法完全排序时,请输出字典序最大的出栈序 ...

  2. 牛客题霸 [字符串的排列] C++题解/答案

    牛客题霸 [字符串的排列] C++题解/答案 题解: stl真好用,emmm... 代码: class Solution {public:vector<string> Permutatio ...

  3. 牛客题霸 [ 验证IP地址] C++题解/答案

    牛客题霸 [ 验证IP地址] C++题解/答案 题目描述 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址 IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围 ...

  4. 牛客题霸 [表达式求值] C++题解/答案

    牛客题霸 [表达式求值] C++题解/答案 题目描述 请写一个整数计算器,支持加减乘三种运算和括号. 题解: 没有除法emmm 我们从头开始依次判断每个字符 如果是左括号,我们就找右括号,并截取括号内 ...

  5. 牛客题霸 [判断回文] C++题解/答案

    牛客题霸 [判断回文] C++题解/答案 题目描述 给定一个字符串,请编写一个函数判断该字符串是否回文.如果回文请返回true,否则返回false. 题解: 左右两端同时向中间缩 代码: class ...

  6. 牛客题霸 [分糖果问题] C++题解/答案

    牛客题霸 [分糖果问题] C++题解/答案 题目描述 一群孩子做游戏,现在请你根据游戏得分来发糖果,要求如下: 每个孩子不管得分多少,起码分到一个糖果. 任意两个相邻的孩子之间,得分较多的孩子必须拿多 ...

  7. 牛客题霸 [合并有序链表] C++题解/答案

    牛客题霸 [合并有序链表] C++题解/答案 题目描述 将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的. 题解: 首先判断l1和l2是否为空 然后依次比较l1和l2的值 ...

  8. 牛客题霸 [二叉树的镜像]C++题解/答案

    牛客题霸 [二叉树的镜像]C++题解/答案 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 题解: 根据题也不难看出,二叉树的镜像定义其实就是左右树翻转 所以我们一直递归左子树,到头后递归右子 ...

  9. 牛客题霸 [ 树的直径] C++题解/答案

    牛客题霸 [ 树的直径] C++题解/答案 题目描述 给定一棵树,求出这棵树的直径,即两个节点距离的最大值. 题解: 不知道大家听没听过一个结论: 树的直径可以通过两边dfs找到 步骤: 1.从任意一 ...

最新文章

  1. win7 安装PyTorch
  2. android--------内存泄露分析工具—Android Monitor
  3. Win10+GTX 1080Ti+Anaconda TensorFlow安装
  4. python DB.fetchall()--获取数据库所有记录列表
  5. opa847方波放大电路_电子管放大电路当中阴极电阻的作用和选择
  6. 三分钟理解Python函数式编程与闭包
  7. ffmpeg开源工具的使用_使用这些开源工具来启动和运行您的业务
  8. python数据处理实战
  9. C#中Redis封装的类
  10. 用Python创建gzip压缩文件
  11. 热血动漫番太好看了!用Python爬取了1T的动漫,内存都爆了
  12. jQuery中的$(“this“)和$(this)的区别
  13. Chrome 开发者工具(DevTools)中所有快捷方式列表
  14. LINUX下打包jar
  15. Java IO流处理 面试题汇总
  16. 使用腾讯位置服务 JavaScript API GL 打造自己的 3D 地图
  17. OA系统权限设计思想和概念
  18. “AI四小龙”神话破灭?依图终止IPO,云从大裁员,旷视巨亏不止
  19. 考拉情书---一片道歉叶
  20. yigo基础学习笔记3_数据迁移

热门文章

  1. 一招搞定高等数学! | 今日最佳
  2. mysql dw解决方案_MySQL 的 DW 解决方案(MySQL + Infobright)
  3. php mysql管理_MySQL 连接与管理
  4. android canvas_Android 如何实现气泡选择动画
  5. oracle体系结构和组件图示,Oracle 体系结构组件
  6. n以内的素数c语言,关于求N以内素数的一点小问题(N小于一亿)
  7. mysql查询语句不返回_PHP-CI MySQL查询联接表,并且where语句不返回所...
  8. 使用React hooks,些许又多了不少摸鱼时间
  9. 简述tcp协议三报文握手过程_TCP协议中的三次握手和四次挥手(图解)
  10. C++用Prim算法实现无向图最小生成树