算法思路:这个算法不同与其他网上写的算法,这个算法需要注意的无非就是边界值的处理,然后通过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. 数据结构与算法之转圈打印矩阵和旋转正方形矩阵

    数据结构与算法之转圈打印矩阵和旋转正方形矩阵 目录 转圈打印矩阵 旋转正方形矩阵 1. 转圈打印矩阵 题目描述 代码实现 public class Code_PrintMatrixSpiralOrde ...

  2. 算法练习day8——190326(猫狗队列、转圈打印矩阵、旋转正方形矩阵、反转单向双向链表、数N的加法组合)

    1.猫狗队列 [题目] 宠物. 狗和猫的类如下: public class Pet {private String type;public Pet(String type) {this.type = ...

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

    牛客题霸 转圈打印矩阵 C++题解/答案 题目描述 给定一个整型矩阵matrix,请按照顺时针转圈的方式打印它. 示例1 输入 复制 [[1,2,3,4],[5,6,7,8],[9,10,11,12] ...

  4. 矩阵打印技巧-转圈打印矩阵

    转圈打印矩阵 矩阵的宏观规律是什么? 1.根据方向首先打印,打印最外层,然后在打印内层 2.在对打印每一层进行拆解 1.首先打印一层的函数: 切记要处理边界条件,只有一行和只有一列的矩阵 //A为起始 ...

  5. leetcode算法题--顺时针打印矩阵

    原题链接:https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/ 1.方法一 vector<int> spi ...

  6. 常见面试算法:朴素贝叶斯

    向AI转型的程序员都关注了这个号

  7. 常见面试算法:树回归、树剪枝

    向AI转型的程序员都关注了这个号

  8. 常见面试算法:Logistic回归、树回归

    向AI转型的程序员都关注了这个号

  9. 常见面试算法:回归、岭回归、局部加权回归

    向AI转型的程序员都关注了这个号

最新文章

  1. “WPF老矣,尚能饭否”—且说说WPF今生未来(上):担心
  2. 多图片每隔2S循环播放
  3. 一文搞定Vim/Vi编辑器
  4. 十七、Pytorch的安装和使用
  5. 一道关于Promise应用的面试题
  6. 使用DispatcherTimer计时器
  7. Redis集成到Maven工程(Jedis客户端)
  8. [转载]qt信号signal和槽slot机制
  9. 转:Python网页解析:BeautifulSoup vs lxml.html
  10. mysql实现axure协同工作_Axure8利用Axure Share创建团队项目,进行多人协作开发
  11. 淘宝直通车怎样设置定向推广出价问题总结
  12. 几种常见的光纤接头(ST,SC,LC,FC)
  13. shuipFCMS收集2
  14. 微信小程序开发工具的目录结构
  15. Windows截图快捷键及自动保存路径
  16. 网管员必知:常用电脑密码破解
  17. 搭建Mantis 缺陷管理系统
  18. Compound 治理——执行队列 TimeLock
  19. laravel artisan命令汇总
  20. 分贝,功率,功率谱,功率谱密度,信噪比

热门文章

  1. MySQL语句笔试题型
  2. ElasticSearch设置日志保存时间-自动删除
  3. 贝叶斯网络,看完这篇我终于理解了!
  4. 上交所科创50ETF期权来了!
  5. vee-validate v-validate使用规则
  6. ShellExecuteEx函数
  7. 推荐几个MySQL 数据库的运维工具
  8. Java中Calendar 计算商品保质期、促销日期
  9. raid 0 raid1 raid5 raid10(0+1)的区别
  10. FatesrNet:Run, Don‘t Walk: Chasing Higher FLOPS for Faster Neural Networks