1、顺(逆)时针旋转MxN矩阵
来源:互联网 发布:淘宝客宣传语 编辑:程序博客网 时间:2024/06/12 01:25
(1)分析
矩阵旋转实质上是行与列的变换。
例如:3x4矩阵
8 6 0 2
1 5 8 7
8 5 1 4
①顺时针旋转90度
8 1 8
5 5 6
1 8 0
4 7 2
原始矩阵元素的行号[i]对应旋转后矩阵的列号[M-i-1]
原始矩阵元素的列号[j]对应旋转后矩阵的行号[j]
即reverseArray[j][M - i - 1] = originArray[i][j]
②逆时针旋转90度
2 7 4
0 8 1
6 5 5
8 1 8
原始矩阵元素的行号[i]对应旋转后矩阵的列号[i]
原始矩阵元素的列号[j]对应旋转后矩阵的行号[N-j-1]
即reverseArray[N-j -1][i] = originArray[i][j]
(2)实现
package com.test;public class ReverseMatrix {private static final int M = 3, N = 4;public static void main(String[] args) {int[][] originMatrix = new int[M][N];int[][] reversMatrix = new int[N][M];// 初始化原始矩阵for (int i = 0; i < M; i++)for (int j = 0; j < N; j++)originMatrix[i][j] = (int) (Math.random() * 10);System.out.println("原始矩阵:");printMatrix(originMatrix);reverseMatrix1(originMatrix, reversMatrix);System.out.println("顺时针旋转90度:");printMatrix(reversMatrix);reverseMatrix2(originMatrix, reversMatrix);System.out.println("逆时针旋转90度:");printMatrix(reversMatrix);}// 顺时针旋转90度public static void reverseMatrix1(int[][] originArray, int[][] reverseArray) {for (int i = 0; i < M; i++)for (int j = 0; j < N; j++)reverseArray[j][M - i - 1] = originArray[i][j];}// 逆时针旋转90度public static void reverseMatrix2(int[][] originArray, int[][] reverseArray) {for (int i = 0; i < M; i++)for (int j = 0; j < N; j++)reverseArray[N - j - 1][i] = originArray[i][j];}public static void printMatrix(int[][] matrix) {int rows = matrix.length;int cols = matrix[0].length;for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++)System.out.print(matrix[i][j] + " ");System.out.println();}}}
0 0
- 1、顺(逆)时针旋转MxN矩阵
- 将图片逆(顺)时针旋转任意角度的函数
- MxN阶螺旋矩阵
- 图像旋转 python实现(针对mxn长方形尺寸图像)
- MxN螺旋矩阵(由外向内)
- MxN螺旋矩阵(由内向外)
- SQL Server2005杂谈(1):将聚合记录集逆时针和顺时针旋转90度(行列互换)
- 矩阵旋转(图像旋转)
- 时针旋转一周,时针和分针重合次数。
- 如果MxN 矩阵中有0,则把该元素的整行,列都变为0(算法)
- java mxn矩阵的反对成转置存为list
- SQL Server2005杂谈(5):将聚合记录集逆时针和顺时针旋转90度
- c语言螺旋方阵順时针旋转
- 矩阵蛇形填数和顺时针输出
- 旋转变换(一)旋转矩阵
- 旋转变换(一)旋转矩阵
- 旋转变换(一)旋转矩阵
- 旋转变换(一)旋转矩阵
- nodejs基础: 如何升级Noejs版本
- UVa 11729 Commando War
- Android使用Application总结
- 计算机网络的cookie理解
- android容联云IM会话界面chattingFragment修改的简单介绍
- 1、顺(逆)时针旋转MxN矩阵
- Share 分享 UM 分享
- 第十三周项目:形状类族的中的纯虚函数
- Linux下进程间通信
- 36、JavaScript中两个DIV的碰撞检测
- java学习---第四篇static关键字以及主函数定义
- qml与c++之间的交互
- android try catch做崩溃处理
- 2 Lucene笔记(二):创建LuceneUtils工具