首页 > 试题广场 >

顺时针旋转矩阵

[编程题]顺时针旋转矩阵
  • 热度指数:60122 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

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

给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵。

数据范围:,矩阵中的值满足

要求:空间复杂度 ,时间复杂度
进阶:空间复杂度 ,时间复杂度
示例1

输入

[[1,2,3],[4,5,6],[7,8,9]],3

输出

[[7,4,1],[8,5,2],[9,6,3]]
头像 牛一霸
发表于 2021-07-21 17:16:31
精华题解 题目:顺时针旋转矩阵 描述:有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。 示例1:输入:[[1,2,3],[4,5,6],[7,8,9]],3,返回值:[[7,4,1],[8,5,2] 展开全文
头像 牛客题解官
发表于 2022-04-22 13:11:45
精华题解 题目主要信息: 给定一个n∗nn*nn∗n的矩阵,返回其顺时针90度旋转后的结果 举一反三: 学习完本题的思路你可以解决如下题目: BM97. 旋转数组 方法:倒置翻转(推荐使用) 知识点:矩阵转置 矩阵转置是将上三角矩阵元素与下三角矩阵元素依据对角线位置对称互换,且该过程是可逆的。 思路: 这 展开全文
头像 牛客500979850号
发表于 2021-07-14 19:34:48
精华题解 解题思路: 本题主要在于找出顺时针旋转90°后的矩阵与原矩阵对应位置之间的关系和规律。 方法一: 找出整体的规律,并使用一个辅助数组来存储新的矩阵。 从上图中的矩阵旋转来看:原矩阵元素的列数变成新矩阵元素的行数;原矩阵元素的行数是第2行,旋转后元素的列数是从右往左倒数第2列。因此对于原矩 展开全文
头像 江南好___
发表于 2021-07-18 15:56:09
精华题解 描述 题目描述 有一个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]]知识 展开全文
头像 漫漫云天自翱翔
发表于 2021-07-08 17:23:06
** 题解一: 一行一行的旋转 ** 题解思路: 声明一个额外的数组ans,将ans保存旋转之后的数组。 位置摆放分析: 对于一个3阶矩阵-> 旋转90度之后坐标变换((0,0)---& 展开全文
头像 数据结构和算法
发表于 2021-08-03 15:31:31
先上下交换,在对角线交换 这题是让把矩阵顺时针旋转90度,最简单的一种方式就是先上下关于中心线翻转,然后再对角线翻转,具体看下图形分析 原理比较简单,来直接看下代码 public int[][] rotateMatrix(int[][] matrix, int n) { 展开全文
头像 六娃lw
发表于 2020-11-20 11:42:37
方法一:开辟n*n空间的矩阵,将原矩阵中的数据赋值到新建的矩阵中,空间复杂度为O(n^2)。 方法二:利用原矩阵中数据的范围为0-300的条件,数据仅利用了int类型32位中的低9位,因此可以利用高位来存新值,低9位存旧值,空间复杂度为O(1)。个人觉得面试这么写才行,线性代数矩阵变换那一套面试官不 展开全文
头像 见面说Hello
发表于 2022-05-07 11:27:34
顺时针旋转90度,mat[i][j]的坐标变为mat[j][n - i - 1] ,遍历即可 import java.util.*; public class Solution { public int[][] rotateMatrix(int[][] mat, int n) { 展开全文
头像 王清楚
发表于 2021-04-21 16:44:19
观察可以发现,原矩阵(x,y)位置的数字旋转完成了以后会在(y)(n-1-x)位置。c++ class Solution { public: vector<vector<int> > rotateMatrix(vector<vector<int> & 展开全文
头像 小陆要懂云
发表于 2021-09-03 09:13:46
vector<vector<int> > rotateMatrix(vector<vector<int> > mat, int n) { // write code here //水平翻转 for (in 展开全文
头像 牛一霸
发表于 2021-07-06 00:20:03
题目:顺时针旋转矩阵 描述:有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。 示例1:输入:[[1,2,3],[4,5,6],[7,8,9]],3,返回值:[[7,4,1],[8,5,2] 展开全文
头像 牛客727894600号
发表于 2021-10-25 10:51:20
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # #  # @param mat int整型二维数组  # @param n int整型  # @retu 展开全文
头像 Leshi燕归巢
发表于 2022-03-30 23:42:34
简单的坐标变换。 import java.util.*; public class Solution { public int[][] rotateMatrix(int[][] mat, int n) { // write code here int[][] 展开全文
头像 jing_zhong
发表于 2021-09-13 13:05:39
题目描述:有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。 示例1        输入:[[1,2,3],[4,5,6] 展开全文

问题信息

难度:
320条回答 36723浏览

热门推荐

通过挑战的用户

查看代码