【牛客刷题专栏】0x27:JZ29 顺时针打印矩阵(C语言编程题)
前言
- 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。
- 个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer:
目录
- 前言
- 问题描述:
- 举例:
- 解法思路:
- 代码结果:
- 结束语
问题描述:
- 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵:
[[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]
- 数据范围:
0 <= matrix.length <= 100
0 <= matrix[i].length <= 100
举例:
//示例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]
//==========================
//示例2:
//输入:
[[1,2,3,1],[4,5,6,1],[4,5,6,1]]
//返回值:
[1,2,3,1,1,1,6,5,4,4,5,6]
解法思路:
- 可以将矩阵看成若干层,首先打印最外层的元素,其次打印次外层的元素,直到打印最内层的元素。
代码结果:
void print_core(int** matrix,int *a, int R,int C,int begin_r,int begin_c)
{int r,c;if((2*begin_r)>R-1||(2*begin_c)>C-1)//矩阵中没有元素了return;if(R-2*begin_r==1) //还剩一行{for(c=begin_c;c<C-begin_c;c++)a[c-begin_c]=matrix[begin_r][c];return;}else if(C-2*begin_c==1) //还剩一列{for(r=begin_r;r<R-begin_r;r++)a[r-begin_r]=matrix[r][begin_c];return;}//顺时针打印for(c=begin_c;c<C-begin_c-1;c++){*a = matrix[begin_r][c];a++;}for(r=begin_r;r<R-begin_r-1;r++){*a = matrix[r][C-begin_c-1];a++;}for(c=C-begin_c-1;c>begin_c;c--){*a = matrix[R-begin_r-1][c];a++;}for(r=R-begin_r-1;r>begin_r;r--){*a = matrix[r][begin_c];a++;}print_core(matrix,a,R,C,begin_r+1,begin_c+1);//打印剩下的部分}int* printMatrix(int** matrix, int matrixRowLen, int* matrixColLen, int* returnSize ) {int *a=(int*)malloc(sizeof(int)*(matrixRowLen*(*matrixColLen)));*returnSize=matrixRowLen*(*matrixColLen);if(*returnSize==0)return NULL;print_core(matrix,a,matrixRowLen,(*matrixColLen),0,0);return a;
}
结束语
- 以上就是该C语言编程题的内容。可以在牛客尝试刷几道题目来练习实践。牛客网刷题(点击可以跳转),可以尝试注册使用。
- 题目来自:牛客/题库 / 在线编程 / 剑指offer:
【牛客刷题专栏】0x27:JZ29 顺时针打印矩阵(C语言编程题)相关推荐
- c语言打印顺时针循环方阵,顺时针打印矩阵(C语言代码)
#include #include void printMatrix(int **matrix,int columns,int rows,int start) { int x=columns-star ...
- 【Shell牛客刷题系列】SHELL5 打印空行的行号:一起学习grep命令搭配正则表达式的使用
该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...
- 《牛客刷verilog》Part III Verilog企业真题
前言 之前刷过HDLbits上面的题目,点击链接可以查看详细笔记:verilog练习:hdlbits网站系列完结! 最近又想刷一下牛客上面的题目,可以点击链接与小编一起刷题:牛客刷题 小编不才,文中如 ...
- 牛客刷题日记(2021-12-8)
牛客刷题日记(2021-12-8) 题目: 以下哪个接口的定义是正确的?( )interface B { void print() { } ;}interface B { static void pr ...
- 牛客刷题日记(2021-11-24)
牛客刷题日记(2021-11-24) 题目: 下面程序的输出是:() String x="fmn"; x.toUpperCase(); String y=x.replace('f' ...
- 牛客刷题-Java面试题库【动态更新添加题目】(2023.06.19更新)
讲在前面 ✨ 牛客刷题日记–理解为重中之重 刷题一方面是持续的了解到自己哪方面比较欠缺,另一方面也是从各大厂的面试题可以看出当前所需的技术栈的偏重点,持续的巩固基础和查漏补缺,一如代码深似海–学无止境 ...
- 【字节面试题】牛客刷题偶遇字节后端笔试面经 撸它
想要看更加舒服的排版.更加准时的推送 关注公众号"不太灵光的程序员" 每日八点有干货推送,微信随时解答你的疑问 牛客刷题偶遇 字节后端笔试0715 撸它 一共两道编程题. 1. 给 ...
- 最长上升子序列(LIS),牛客刷题
目录: 最长上升子序列(LIS) 1.模板(数据较小) 2.模板(数据较大) 牛客刷题 1. 牛客练习赛107A:如见青山 2.牛客小白月赛65A牛牛去购物 3.牛客小白月赛65B牛牛去购物 4.牛客 ...
- 【牛客刷题】java编程笔试题(更新)
目录 统计出现次数top n的字符串 求最后一个有效字符下标 复杂链表的复制 删除链表中重复的结点 删除链表的节点 二叉树的深度 二叉搜索树的第k个节点 二叉树的镜像 判断是不是平衡二叉树 二叉搜索树 ...
最新文章
- https原理与实践
- 中科大计算机学院的保研率,中科大2021届保研率44.7%,少年班83.4%,物理计算机人数最多...
- NYOJ 104 最大和
- One-Stage Visual Grounding论文汇总
- 南华大学java补考_关于2017年秋季学期学生补考报名及成绩复核的通知
- jquery实现的3D缩略图悬停效果
- rpm的mysql安装_MySQL 5.7.22 rpm 安装方式
- 【转载】windows跳板机配置远程桌面连接
- 学术会议查询 边缘计算_我设计了可以预测边缘性的“学术不诚实”的AI系统(SMART课堂)...
- 预测大盘最准确的指标_通达信大盘预测指标,通达信副图指标,需要写一个关于大盘每日成交量的指标高手请进啊...
- MAC下的SVN工具
- eclipse安装教程|最详细eclipse安装 配置图文教程
- 中国数字化转型的未来与建议
- python3单例模式_python3中的单例模式Singleton
- android测试版微信7.0下载地址,微信8.0.6手机测试版本
- Caused by: java.sql.BatchUpdateException: ORA-00001: 违反唯一约束条件 (DSPACE.SYS_C007868)
- 【前端三剑客三】 JavaScript
- 多系统如何共享蓝牙设备?
- QQ游戏中心能力值抽大奖 抽奖得Q币 iPad QQ公仔等实物
- 不要仅为85%的用户设计:关注无障碍设计
热门文章
- CSS:nth-child、first-child、last-child
- 构建需求响应式亿级商品详情页
- 安卓apk 客户端渗透<高级>
- 连接别的电脑共享的打印机方法
- 阿里云苦尽甘来的历程
- 通达OA 一次系统异常问题处理
- 关于 UI设计 切图,我们应该如何给开发人员
- 乐融超级电视与鸿蒙系统,乐视超级电视亲笔信回馈乐迷 感谢一路相伴不离不弃...
- 将excel数据导入到SQL server数据库,SQL server引入导入excel报表,如何解决“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”问题
- 量子计算机专业哪个大学强,量子计算机哪个国家的高校做得最好