`
hcx2013
  • 浏览: 88177 次
社区版块
存档分类
最新评论

顺时针旋转矩阵

 
阅读更多

有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。

给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。

测试样例:
[[1,2,3],[4,5,6],[7,8,9]],3
返回:[[7,4,1],[8,5,2],[9,6,3]]


import java.util.*;

public class Rotate {
    public int[][] rotateMatrix(int[][] mat, int n) {
    	int tR = 0;
    	int dR = mat.length-1;
    	int tC = 0;
    	int dC = mat[0].length-1;
    	while (tR<dR && tC<dC) {
    		solve(mat, tR++, tC++, dR--, dC--);
    	}
    	return mat;
    }

	private void solve(int[][] mat, int tR, int tC, int dR, int dC) {
		int times = dR - tR;
		for (int i = 0; i != times; i++) {
			int tmp = mat[tR][tC+i];
			mat[tR][tC+i] = mat[dR-i][tC];
			mat[dR-i][tC] = mat[dR][dC-i];
			mat[dR][dC-i] = mat[tR+i][dC];
			mat[tR+i][dC]= tmp;
		}
	}
}
 
0
1
分享到:
评论

相关推荐

    rotateMatrix:我的算法是顺时针旋转矩阵的内圆

    我的算法是顺时针旋转矩阵的同心圆 首先,输入矩阵应具有的维数(必须为正方形矩阵)。 该矩阵将由整数组成。 其次,将矩阵中的数字逐行输入,并用空格隔开。 请参阅下面的输入和输出示例。 程序输入: 2 1 2 ...

    Rotate-A-Matrix:旋转矩阵

    顺时针旋转矩阵 只旋转一步,而不是 90 度 示例 1 输入 1, 2, 3 4, 5, 6 7, 8, 9 输出 4, 1, 2 7, 5, 3 8, 9, 6 示例 2 输入 1, 2, 3, 4 5, 6, 7, 8 9, 10, 11, 12 13, 14, 15, 16 输出 5, 1, 2, 3 9, ...

    旋转矩阵元素的Java程序.docx

    在这个问题中,我们将探讨如何用 Java 实现顺时针旋转矩阵元素的两种方法。 方法1:朴素方法 朴素方法通常是最直观但可能效率较低的解法。对于一个 n×n 的矩阵,我们可以通过四次循环遍历整个矩阵,分别处理顶行、...

    对图像进行顺时针逆时针旋转变换,带测试图片

    - 顺时针旋转矩阵R(θ)可以表示为: \[ R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} \] - 逆时针旋转矩阵R(-θ)则是: \[ R(-\theta) = \begin{b...

    旋转矩阵的简单实现

    ### 旋转矩阵的简单实现 #### 一、概述 在计算机科学与数学领域,旋转矩阵是一种特殊的矩阵形式,常用于图形学中的二维或三维空间旋转变换。本文将介绍如何使用Visual Studio 2005(简称VS2005)简单实现一个旋转...

    欧拉角与旋转矩阵的转换.pdf

    在SLAM(Simultaneous Localization And Mapping)领域,理解和掌握欧拉角与旋转矩阵之间的转换是至关重要的。欧拉角是一种表示三维空间中物体旋转的参数方式,而旋转矩阵则是另一种描述旋转的方法,它们在机器人...

    将矩阵顺时针旋转90°

    矩阵顺时针旋转90度,顾名思义,就是将矩阵的行转换为列,同时保持元素的顺序,使得原矩阵的右上角元素变为新矩阵的左上角元素,依次类推,直到完成整个矩阵的旋转。这个操作对于正方形矩阵(即行数和列数相等的矩阵...

    RE_矩阵1

    这是一个顺时针旋转矩阵的问题。在处理这种问题时,关键在于理解映射坐标的方法。比如,第二象限的点可以通过坐标变换映射到其他象限,公式为[j][len - i],这里的len是矩阵的长度,i和j分别代表原始坐标距离(0, 0)...

    顺时针旋转文字

    在编程领域,特别是Java编程中,实现"顺时针旋转文字"是一种常见的图形处理需求,主要涉及二维图形的绘制和变换。以下将详细介绍这个主题,包括相关知识点、原理以及实现方法。 首先,我们要理解文字旋转的基本概念...

    图形学作业4矩阵二维坐标变换推导.docx

    首先,P1绕点P2顺时针旋转θ角度,然后将P2平移到点P3。旋转和平移的矩阵可以通过旋转矩阵R(-θ)和平移矩阵T(P3-P2)来表示,其中R矩阵描述旋转,T矩阵描述平移,通过这些矩阵的乘积,我们可以得到新的端点坐标。 ...

    第3章MATLAB矩阵处理_习题答案[参考].pdf

    - `rot90(A,k)`:顺时针旋转矩阵A k次(k=1),或逆时针旋转k次(k=-1)。 6. **线性方程组求解** - `inv(A)*b`:使用矩阵A的逆求解线性方程组Ax=b。 以上是MATLAB中矩阵处理的一些基本概念和常用命令。通过熟练...

    Matlab学习记录.pdf

    - `rot90(A, -2)` 顺时针旋转矩阵A 90度两次。 4. **特殊矩阵的生成**: - `eye(n)` 生成n维的单位矩阵。 - `ones(n, m)` 生成n×m维全1矩阵。 - `zeros(n, m)` 生成n×m维全0矩阵。 - `rand(n, m)` 生成2×3...

    Python3实现的旋转矩阵图像算法示例

    本文实例讲述了Python3实现的旋转矩阵图像算法。分享给大家供大家参考,具体如下: 问题: 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 方案一:先按X轴对称旋转, 再用zip()解压,最后用...

    hackhu2019#LeetCode#LeetCode面试题 01.07. 旋转矩阵1

    面试题 01.07. 旋转矩阵 题目链接解题思路:顺时针旋转 90° 对应转换规则 (x,y)-&gt;(y,n-x) ,n=N-1public void rotat

    国家计算机2级考试题库.pdf

    程序通过四步操作实现顺时针旋转矩阵的外围元素:将第一行存入临时数组,第一列替换为原第一行,最后一行替换为原第一列,临时数组元素替换为最后一列。这里利用了数组索引的特性进行元素交换。 - 在计算序列和的...

    C++矩阵变换操作平移、旋转、镜像

    以绕Z轴旋转为例,假设旋转角度为θ,旋转矩阵是: ``` [cosθ -sinθ 0 0] [sinθ cosθ 0 0] [ 0 0 1 0] [ 0 0 0 1] ``` 多个旋转可以结合在一起,但需要注意旋转顺序(即右手规则或左手规则)对结果的...

    方阵顺时针旋转的实现代码

    方阵顺时针旋转是一种常见的矩阵操作,常用于图像处理、数据转换等领域。在这个问题中,我们关注的是如何使用C++编程语言实现一个函数来完成这个任务。给出的代码示例提供了一个解决方案。 首先,我们需要理解...

    MATLAB实用教程参考答案.pdf

    - 顺时针旋转矩阵D: ```matlab rot90(D, 3) ``` - 逆时针旋转矩阵D: ```matlab rot90(D, 1) ``` 12. **矩阵翻转**: - 左右翻转矩阵D: ```matlab fliplr(D) ``` - 上下翻转矩阵D: ```matlab ...

    二级上机题库

    15. 矩阵操作出现在第十六题,考生需要实现顺时针旋转矩阵的外围元素,涉及二维数组的处理和矩阵变换。 16. 最后,第十七题是一个字符串数组的搜索任务,要求在字符串数组中查找特定子串,可能需要用到字符串搜索...

    matlab命令汇总

    - `rot90()`: 顺时针旋转矩阵90度。 - `fliplr()`: 沿垂直轴翻转矩阵。 - `flipud()`: 沿水平轴翻转矩阵。 - `transpose()`: 转置矩阵。 - `ctranspose()`: 对复数矩阵进行共轭转置。 - `inv()`: 计算矩阵的逆...

Global site tag (gtag.js) - Google Analytics