牛客BM99-顺时针旋转矩阵-C++

牛客BM99-顺时针旋转矩阵-C++,第1张


一、运行结果

 


二、题目

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/579503.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)