常见面试算法之转圈打印矩阵
2024-05-10 08:55:22
算法思路:这个算法不同与其他网上写的算法,这个算法需要注意的无非就是边界值的处理,然后通过2个点确定一个矩阵,一圈之后,点数向里错一位,循环即可,
不罗嗦了,直接贴代码。(QQ:3036643587,欢迎拍砖)
/*** 面试常用题(一)* 转圈打印矩阵* @author Administrator**/
public class Chapter01_circleArray {public static void spiralOrderPrint(int[][] matrix) {int tR = 0;int tC = 0;int dR = matrix.length - 1;int dC = matrix[0].length - 1;while (tR <= dR && tC <= dC) {printEdge(matrix, tR++, tC++, dR--, dC--);}}public static void printEdge(int[][] m, int tR, int tC, int dR, int dC) {if (tR == dR) { // 子矩阵只有一行时for (int i = tC; i <= dC; i++) {System.out.print(m[tR][i] + " ");}} else if (tC == dC) { // 子矩阵只有一列时for (int i = tR; i <= dR; i++) {System.out.print(m[i][tC] + " ");}} else { // 一般情况int curC = tC;int curR = tR;while (curC != dC) {System.out.print(m[tR][curC] + " ");curC++;}while (curR != dR) {System.out.print(m[curR][dC] + " ");curR++;}while (curC != tC) {System.out.print(m[dR][curC] + " ");curC--;}while (curR != tR) {System.out.print(m[curR][tC] + " ");curR--;}}}public static void main(String[] args) {int[][] matrix = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 },{ 13, 14, 15, 16 } };spiralOrderPrint(matrix);}
}
常见面试算法之转圈打印矩阵相关推荐
- 数据结构与算法之转圈打印矩阵和旋转正方形矩阵
数据结构与算法之转圈打印矩阵和旋转正方形矩阵 目录 转圈打印矩阵 旋转正方形矩阵 1. 转圈打印矩阵 题目描述 代码实现 public class Code_PrintMatrixSpiralOrde ...
- 算法练习day8——190326(猫狗队列、转圈打印矩阵、旋转正方形矩阵、反转单向双向链表、数N的加法组合)
1.猫狗队列 [题目] 宠物. 狗和猫的类如下: public class Pet {private String type;public Pet(String type) {this.type = ...
- 牛客题霸 转圈打印矩阵 C++题解/答案
牛客题霸 转圈打印矩阵 C++题解/答案 题目描述 给定一个整型矩阵matrix,请按照顺时针转圈的方式打印它. 示例1 输入 复制 [[1,2,3,4],[5,6,7,8],[9,10,11,12] ...
- 矩阵打印技巧-转圈打印矩阵
转圈打印矩阵 矩阵的宏观规律是什么? 1.根据方向首先打印,打印最外层,然后在打印内层 2.在对打印每一层进行拆解 1.首先打印一层的函数: 切记要处理边界条件,只有一行和只有一列的矩阵 //A为起始 ...
- leetcode算法题--顺时针打印矩阵
原题链接:https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/ 1.方法一 vector<int> spi ...
- 常见面试算法:朴素贝叶斯
向AI转型的程序员都关注了这个号
- 常见面试算法:树回归、树剪枝
向AI转型的程序员都关注了这个号
- 常见面试算法:Logistic回归、树回归
向AI转型的程序员都关注了这个号
- 常见面试算法:回归、岭回归、局部加权回归
向AI转型的程序员都关注了这个号
最新文章
- “WPF老矣,尚能饭否”—且说说WPF今生未来(上):担心
- 多图片每隔2S循环播放
- 一文搞定Vim/Vi编辑器
- 十七、Pytorch的安装和使用
- 一道关于Promise应用的面试题
- 使用DispatcherTimer计时器
- Redis集成到Maven工程(Jedis客户端)
- [转载]qt信号signal和槽slot机制
- 转:Python网页解析:BeautifulSoup vs lxml.html
- mysql实现axure协同工作_Axure8利用Axure Share创建团队项目,进行多人协作开发
- 淘宝直通车怎样设置定向推广出价问题总结
- 几种常见的光纤接头(ST,SC,LC,FC)
- shuipFCMS收集2
- 微信小程序开发工具的目录结构
- Windows截图快捷键及自动保存路径
- 网管员必知:常用电脑密码破解
- 搭建Mantis 缺陷管理系统
- Compound 治理——执行队列 TimeLock
- laravel artisan命令汇总
- 分贝,功率,功率谱,功率谱密度,信噪比
热门文章
- MySQL语句笔试题型
- ElasticSearch设置日志保存时间-自动删除
- 贝叶斯网络,看完这篇我终于理解了!
- 上交所科创50ETF期权来了!
- vee-validate v-validate使用规则
- ShellExecuteEx函数
- 推荐几个MySQL 数据库的运维工具
- Java中Calendar 计算商品保质期、促销日期
- raid 0 raid1 raid5 raid10(0+1)的区别
- FatesrNet:Run, Don‘t Walk: Chasing Higher FLOPS for Faster Neural Networks