一、运行结果
二、题目
有一个nxn整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。
给定一个nxn的矩阵,和矩阵的阶数n,请返回旋转后的nxn矩阵。
数据范围:0 < n < 3000,矩阵中的值满足0≤val≤1000
要求:空间复杂度 O(n^2),时间复杂度 O(n^2)
进阶:空间复杂度 O(1),时间复杂度 O(n^2)
示例1输入: [[1,2,3],[4,5,6],[7,8,9]],3
返回值: [[7,4,1],[8,5,2],[9,6,3]]
三、思路+代码
方法一:用一个同等规模的辅助矩阵,找出元素下标之前的映射关系,直接映射即可。
class Solution {
public:
vector > rotateMatrix(vector > mat, int n) {
int top=0, left=0, buttom= n-1, right = n-1;
vector> ans(n,vector(n));
for(int i=0; i
方法二:原地旋转,每轮旋转四个位置的元素
class Solution {
public:
vector > rotateMatrix(vector > mat, int n) {
int top=0, left=0, buttom= n-1, right = n-1;
for(int i=0; i
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)