背景

有这么一道面试题,让顺时针输出一个二维矩阵。

思路

记录开始行开始列和结束行结束列,做为输出的边界

除了要输出的矩阵,我还设置了一个状态矩阵,用来记录矩阵中某一个元素输出与否,没有输出过的元素,才进行输出

实现

测试用的矩阵:

123

123

123

123

代码如下:

public class ExampleUnitTest {int[][] matrix = {{1, 2, 3}, {1, 2, 3}, {1, 2, 3}, {1, 2, 3}};int[][] hasPrintedMatrix = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}};@Testpublic void addition_isCorrect() throws Exception {int endLine = 3, endColumn = 2;int startLine = 0, startColumn = 0;int i, j;while (startLine <= endLine && startColumn <= endColumn) {i = startLine;j = startColumn;// 从左上往右上for (; j < endColumn + 1; j++) {printData(i, j);}j--;i++;// 从右上往右下for (; i < endLine + 1; i++) {printData(i, j);}i--;j--;// 从右下到左下for (; j > startColumn - 1; j--) {printData(i, j);}i--;j++;// 从左下到左上for (; i > startLine; i--) {printData(i, j);}startLine++;startColumn++;endColumn--;endLine--;}}private void printData(int i, int j) {if (hasPrintedMatrix[i][j] == 0) {System.out.print(matrix[i][j] + " ");hasPrintedMatrix[i][j] = 1;}}}

结果

结语

方法似乎笨拙了一些,但……至少解决了问题

算法学习之实现二维矩阵的顺时针遍历相关推荐

  1. 力扣算法题—074搜索二维矩阵

    编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入: matrix ...

  2. [学习笔记]人工智能-神经网络对数据进行分类,构建二维矩阵

    1.对投喂数据进行极值获取,构造更多数据做准备 示例 plot_decision_regions(x, y, ppn, resolution=0.02)def plot_decision_region ...

  3. 关于有序二维矩阵查找和字符串替换的两道算法题

    最近看一本书上写到的两个面试题 于是实现了一下 感觉思路很好,大牛略过 : 1.对于一个二维矩阵,从左到右  从上到下 都是递增的,如何判断一个值是否在矩阵内部?(C实现  实现复杂度 O(n)) b ...

  4. java学习-zxing生成二维码矩阵的简单例子

    这个例子需要使用google的开源项目zxing的核心jar包 core-3.2.0.jar 可以百度搜索下载jar文件,也可使用maven添加依赖 <dependency><gro ...

  5. matlab找出二维矩阵中最大值的位置或者最小值的位置

    matlab寻找最大值或者最小值是通过max和min命令 对应二维矩阵寻找最大元素就是max(max(A)),注意二维矩阵要写两个max 找对应位置用find函数 举个例子: >> A=[ ...

  6. 机器学习之数学基础(二)~数组、向量、矩阵、向量空间、二维矩阵

    1. 概述 在学习机器学习(machine learning)或模式识别(pattern recognition)过程中,我经常会困惑于向量.数组和矩阵这三种数据结构,而在学习张学工教授<模式识 ...

  7. python 搜索二维矩阵

    搜索二维矩阵 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入:m ...

  8. LeetCode 73矩阵置零74搜素二维矩阵75颜色分类

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...

  9. 聚类算法学习指南(二)

    http://hi.baidu.com/catfool/blog/item/c06bec3931a0efcad4622524.html 聚类算法学习指南(二) 2009-05-06 20:49 下图 ...

最新文章

  1. Linux Shell Tips小技巧
  2. c语言不同指令意识,C语言必须理清的概念1
  3. winsetup制作linux启动盘,winsetupfromusb怎样做linux启动盘
  4. springboot-web开发
  5. xcode 自动化出包
  6. ML.NET 示例:图像分类模型训练-首选API(基于原生TensorFlow迁移学习)
  7. 在SQL中使用PL/SQL函数存在的问题
  8. UI(1)---2018 UI 设计趋势
  9. bzoj3514 Codechef MARCH14 GERALD07加强版 lct预处理+主席树
  10. 初中理化生实验室仪器配置
  11. ps裁剪和裁切的区别_PS图片的裁剪和裁切的含义和应用
  12. 微信二维码海报推广示例
  13. 餐桌 (Standard IO)
  14. 大图片显示在客户端,被压扁失真的问题
  15. C++的名字空间(很重要)
  16. java 语言的简介
  17. 我是这样入门“机器学习”的
  18. 传智播客 php系列,传智播客PHP 2015-JS高级系列视频教程 83集
  19. 联想服务器报错“传感器ME Status已从不太严重状态转换至紧急状态”
  20. html5 u3m8,U3M8短语.doc

热门文章

  1. 专利申请需要注意什么
  2. 曾经人见人爱花见花开的zookeeper为啥突然不香了呢
  3. 一款超好用的markdown编辑器
  4. javax.activation:activation:jar:1.0.2
  5. Hbuildx工具启动uniapp项目
  6. 学校计算机教室建设要求,计算机教室施工建设要求
  7. 知识改变命运 学习成就梦想
  8. 2020年9月PAT甲级满分必备刷题技巧
  9. 艾美捷针对性检测—游离维多珠单抗ADA水平检测试剂盒
  10. 自研还是采购BI系统?后悔知道得太晚!