数据结构与算法之转圈打印矩阵和旋转正方形矩阵


目录

  1. 转圈打印矩阵
  2. 旋转正方形矩阵

1. 转圈打印矩阵

  1. 题目描述

  2. 代码实现


public class Code_PrintMatrixSpiralOrder {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. 题目描述

  2. 代码实现

public class Code_RotateMatrix {public static void rotate(int[][] matrix) {int tR  = 0;int tC = 0;int dR = matrix.length-1;int dC = matrix[0].length-1;while (tR<dR){rotateEdge(matrix,tR++,tC++,dR--,dC--);}}public static void rotateEdge(int[][] m, int tR, int tC, int dR, int dC) {int tmp = 0;int times = dC-tC;for (int i = 0; i != times; i++) {tmp = m[tR][tC+i];m[tR][tC+i] = m[dR-i][tC];m[dR-i][tC] = m[dR][dC-i];m[dR][dC-i] = m[tR+i][dC];m[tR+i][dC] = tmp;}}public static void printMatrix(int[][] matrix) {for (int i = 0; i != matrix.length; i++) {for (int j = 0; j != matrix[0].length; j++) {System.out.print(matrix[i][j] + " ");}System.out.println();}}public static void main(String[] args) {int[][] matrix = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 },{ 13, 14, 15, 16 } };printMatrix(matrix);rotate(matrix);System.out.println("=========");printMatrix(matrix);}
}

数据结构与算法之转圈打印矩阵和旋转正方形矩阵相关推荐

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

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

  2. 常见面试算法之转圈打印矩阵

    算法思路:这个算法不同与其他网上写的算法,这个算法需要注意的无非就是边界值的处理,然后通过2个点确定一个矩阵,一圈之后,点数向里错一位,循环即可, 不罗嗦了,直接贴代码.(QQ:3036643587, ...

  3. 数据结构与算法--查找与排序另类用法-旋转数组中的最小数字

    查找与排序 查找 查找与排序都在程序设计中常被用到的算法.查找相对而言简单,一般都是顺序查找,二分查找,哈希表查找,和二叉排序树查找.其中二分查找是我必须熟悉的一种. 哈希表和二叉排序树主要点在于他的 ...

  4. 数据结构与算法笔记——顺序表(数组)与矩阵

    目录 前言 一.顺序表的结构 二.顺序表的初始化 三.基本操作 1.插入数据 2.删除数据 3.查找数据 总结 前言 顺序表是线性表的顺序存储结构的实现,基本操作有顺序表的初始化.插入.删除和查询. ...

  5. 【数据结构与算法】之深入解析“寻找旋转排序数组中的最小值II”的求解思路与算法示例

    一.题目要求 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次旋转后,得到输入数组.例如,原数组 nums = [0, 1, 4, 4, 5, 6, 7] 在变化后可能得到: 若旋转 ...

  6. 【数据结构与算法】之深入解析“寻找旋转排序数组中的最小值”的求解思路与算法示例

    一.题目要求 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次旋转后,得到输入数组.例如,原数组 nums = [0, 1, 2, 4, 5, 6, 7] 在变化后可能得到: 若旋转 ...

  7. 【数据结构与算法】之深入解析“搜索旋转排序数组”的求解思路与算法示例

    一.题目要求 整数数组 nums 按升序排列,数组中的值互不相同 . 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了旋转,使数组变 ...

  8. 【数据结构与算法】之深入解析“有效的正方形”的求解思路与算法示例

    一.题目要求 给定 2D 空间中四个点的坐标 p1.p2.p3 和 p4,如果这四个点构成一个正方形,则返回 true.点的坐标 pi 表示为 [xi, yi],输入不是按任何顺序给出的. 一个有效的 ...

  9. SPSS因子分析中成分矩阵、旋转成分矩阵和成分得分系数矩阵的区别

最新文章

  1. php引入路径配置,require.js的路径配置和css的引入方法详解
  2. 机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY16-强化学习
  3. mysql数据库的逻辑架构和存储引擎
  4. 数据库的事务级别介绍与操作
  5. Blizzard Transitions for Mac - 动态风雪过渡效果FCPX转场
  6. VB利用资源文件进行工作
  7. 数据结构之线性表之顺序存储结构(3)
  8. .NET2.0中,Winform程序如何异步调用Web Service呢?[Demo下载]——与.net1.1环境下比较...
  9. 计算机应用基础实验报告册,大学计算机应用基础实验报告册 - 2010版 - (1)
  10. 纪念自己初中的住宿生活
  11. stvd能编译c语言,stvd+stm8s单片机程序编译报错
  12. 【SDOI2008】Sue的小球
  13. markdown java代码块 语法_MarkDown 语法详解
  14. .jnlp 文件打开方式
  15. openEuler 的安装及内核编译
  16. 实现用户在网页中给我的QQ邮箱发邮件
  17. OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十、Openstack对象存储服务(swift)上
  18. Java小程序,编写一个迷你DVD租借系统(控制台输出)
  19. 面向对象(4)封装与继承
  20. 【C++】黑马程序员C++核心编程学习笔记(完结)

热门文章

  1. 参加51CTO组织的2013云计算架构师大会
  2. 企业如何走出自己的CRM非常之道?
  3. Android:Layout_weight的深刻理解
  4. 技术、管理和技术管理
  5. 牛客多校7 - A National Pandemic(树链剖分+线段树)
  6. CodeForces - 123A prime permutation(并查集,水题)
  7. js检测鼠标是否在操作_原生JS趣味demo:炫酷头像鼠标追随效果的实现
  8. python写excel标记文字颜色_python3使用xlwt时写入文档字体颜色和边框样式
  9. UVA - 12569 Planning mobile robot on Tree (EASY Version) BFS
  10. 0709-To Lower Case(转换成小写字母)