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

顺时针旋转矩阵

 
阅读更多

有一个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, ...

    将矩阵顺时针旋转90°

    采用数组的形式将数组顺时针旋转90°,方阵,普通矩阵通用

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

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

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

    先绕P2 点顺时针旋转θ角,再将P2平移到点P3(x3,y3) 。求出变换后直线的两端点坐标。对于如下图形,各点坐标为:A(5,5)、B(5,1)、C(3,5)、A´(3,1)、B´(1,1)、C´(3,2)。利用二维坐标变换规则,求出△ABC到△A´...

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

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

    n*n的矩阵旋转

    实现一个n*n矩阵的向右旋转90度 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 右旋转90度后的效果: 13 9 5 1 14 10 6 2 15 11 7 3 16 12 8 4

    Java实现矩阵顺时针旋转90度的示例

    今天小编就为大家分享一篇Java实现矩阵顺时针旋转90度的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    转方阵 矩阵旋转

    把输入 的 数字方阵顺时针旋转 90° 。

    c++ 矩阵转换

    定义一个方阵类Array,实现对方阵进行顺时针90度旋转。 定义一个方阵类Array,实现对方阵进行顺时针90度旋转。如图所示。 具体要求如下: (1)私有数据成员 l int a[4][4]:用于存放方阵。 (2)公有成员函数 ...

    Introduction-to-Cybersecurity-and-Recursion:第10周

    网络安全和递归介绍 第10周:网络安全与递归简介 一,文件清单 敏捷方法和递归-Microsoft Word文档 rotationMatrixExercise-JavaScript文件 ... 然后要求您顺时针旋转矩阵以将新的数字矩阵输出为[[7,4,1],

    leetcode2sumc-LeetCode_py:LeetCode_py

    顺时针旋转矩阵 90 度。 首先翻转矩阵,交换对称153是直接的 01/31/2020 75 - SortColors 167 - TwoSum2 DCP 75 是一个双指针问题,如果当前项为 0,则使用 p1 p2 指向开始和结束,然后与开始交换,如果当前项目为 2...

    c语言螺旋矩阵大作业报告.docx

    3. 给定N的值,从内到外顺时针旋转 例如N=3时,输出: 7 8 9 6 1 2 5 4 3 4.给定N的值,从内到外逆时针旋转 例如N=3时,输出: 5 4 3 6 1 2 7 8 9 5.给定N的值,从矩阵的左上角顺时针输出上三角螺旋矩阵 例如N...

    数字旋转逻辑题的Android解法

    顺时针旋转为标为r1,r2,r3,r4,逆时针旋转标为R1,R2,R3、R4,共8种旋转方式,即顺时针旋转为r和逆时针旋转标记为R .例如,从矩阵(S),通过旋转序列r1R4r2R3就变为了矩阵(E)。现在,要求从矩阵(S)以最短的方法变为矩阵(T...

    Android开发之图片旋转功能实现方法【基于Matrix】

    在Android中进行图像旋转需要使用Matrix,它包含了一个3*3的矩阵,专门用于进行图像变换匹配。Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放、平移、旋转等操作。Matrix没有机构...

    生成分形图像的matlab

    %旋转矩阵 顺时针旋转60度 for k 1:5 d diff p 3; m 4 n 3; %迭代公式 q p 1:n 1 : ; p 5:4:m : p 2:n : ; p 2:4:m : q+d; p 3:4:m : q+2 d+d A&quot;; p 4:4:m : q+2 d; n m; end plot p : 1 p : 2 ; axis ...

    python 实现旋转图像

    # 将图像顺时针旋转 90 度 # 说明: # 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像 # 示例 1: # 给定 matrix = # [ # [1,2,3], # [4,5,6], # [7,8,9] # ], # ...

    C 三角形旋转变换

    由用户输入三角形的三个顶点及屏幕上任意一点p的坐标(由于界面问题应输入第一象限坐标),在屏幕上画出该三角形及相对于点p顺时针旋转一定的角度(角度也由用户输入)后的图形。

    根据最小外接矩形放平_计算旋转角_二值图像旋转至水平_最小外接矩形你和_

    最小外接矩形,计算偏转角,旋转至水平,根据最小的旋转角进行旋转,顺时针或者逆时针

    旋转2D正方形矩阵

    将图像旋转90度(顺时针)。 注意:您必须就地旋转图像,这意味着您必须直接修改输入2D矩阵。 不要分配另一个2D矩阵并进行旋转。 Example 1: Given input matrix = [ [1,2,3], [4,5,6], [7,8,9] ], rotate ...

Global site tag (gtag.js) - Google Analytics