一、运行结果

二、题目

有一个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<vector<int> > rotateMatrix(vector<vector<int> > mat, int n) {int top=0, left=0, buttom= n-1, right = n-1;vector<vector<int>> ans(n,vector<int>(n));for(int i=0; i<n; i++){for(int j=0; j<n; j++){ans[i][j] = mat[n-j-1][i];}}return ans;}
};

方法二:原地旋转,每轮旋转四个位置的元素

class Solution {
public:vector<vector<int> > rotateMatrix(vector<vector<int> > mat, int n) {int top=0, left=0, buttom= n-1, right = n-1;for(int i=0; i<n/2; i++){for(int j=i; j<n-i-1; j++){int tmp = mat[i][j];//映射规律://右边的列号等于左边的行号,右边的行号等于 n-左边的列号-1mat[i][j] = mat[n-j-1][i]; mat[n-j-1][i] = mat[n-i-1][n-j-1]; mat[n-i-1][n-j-1] = mat[j][n-i-1]; mat[j][n-i-1] = tmp;}}return mat;}
};

牛客BM99-顺时针旋转矩阵-C++相关推荐

  1. 牛客题霸 [顺时针旋转矩阵] C++题解/答案

    牛客题霸 [顺时针旋转矩阵] C++题解/答案 题目描述 有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度. 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于 ...

  2. 【牛客刷题专栏】0x27:JZ29 顺时针打印矩阵(C语言编程题)

    前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失. 个人刷题练习系列专栏:个人CSDN牛客刷题专栏. 题目来自:牛客/题库 / 在线编程 / 剑 ...

  3. 牛客题霸题目及题解汇总

    牛客题霸 单链表的选择排序 C++题解/答案 牛客题霸 最少素数拆分 C++题解/答案 牛客题霸 两数之和 C++题解/答案 牛客题霸 反转链表 C++题解/答案 牛客题霸 二分查找 C++题解/答案 ...

  4. 牛客题霸 转圈打印矩阵 C++题解/答案

    牛客题霸 转圈打印矩阵 C++题解/答案 题目描述 给定一个整型矩阵matrix,请按照顺时针转圈的方式打印它. 示例1 输入 复制 [[1,2,3,4],[5,6,7,8],[9,10,11,12] ...

  5. 【牛客 - 331E】炫酷划线(权值线段树,树状数组哈希,随机数)

    题干: 链接:https://ac.nowcoder.com/acm/contest/331/E 来源:牛客网 平面上有一个圆,圆环上按顺时针顺序分布着从1到n,一共n个点. 现在无聊的小希开始按某种 ...

  6. Java算法:牛客网Java版剑指Offer全套算法面试题目整理及电子档,Java算法与数据结构面试题,面试刷题、背题必备!牛客网剑指offer

    剑指offer(java版) 牛客网Java版剑指Offer全套题目67道 资源来源于网络 目录 1.二维数组中的查找 2.替换空格 3.从尾到头打印链表 4.重建二叉树 5.用两个栈实现队列 6.旋 ...

  7. 牛客每日练习----合并回文串,年轮广场,安卓图案解锁

    大提琴的声音就像一条河,左岸是我无法忘却的回忆,右岸是我值得紧握的璀璨年华,中间流淌的,是我年年岁岁淡淡的感伤. 链接:https://ac.nowcoder.com/acm/problem/1323 ...

  8. 牛客网算法教程-中级篇-第一章

    文章目录 学习目标: 学习内容: 学习时间: 学习产出: 1.旋转词-模拟 2.旋转矩阵-模拟 3.数轴覆盖-贪心 4.1 完整字符串1(括号字符串的有效性)-栈 4.2 完整字符串2(缺失的括号)- ...

  9. 《牛客网 剑指Offer前20题》

    <剑指Offer> 牛客网 前20道题 前言知识 面试题1:二维数组中的查找 面试题2:二维数组中的查找 面试题3:从头到尾打印链表 面试题4:重建二叉树 ***** 面试题5:两个栈实现 ...

最新文章

  1. CAN总线很难吗?CAN总线看不懂是不可能的!
  2. nginx 跨服务器显示图片,centos6.6下nginx配置远程服务器上图片访问
  3. linux驱动编写(platform总线和网卡驱动)
  4. idea导入项目常见异常处理
  5. STM8S003F3 内部flash调试
  6. [精简整理]疏通中国历史脉络——“隋、唐(五代十国)”篇
  7. 用qq的功能进行屏幕录制
  8. VBA·编译错误:ByRef参数类型不符
  9. Excel 2016不能双击一次性打开excel文件
  10. 学软件开发都要学哪些基础内容?
  11. Rasa课程、Rasa培训、Rasa面试、Rasa实战系列之Typo Robustness
  12. 如此声明数组正确吗?int n=10,a[n];如果这样呢?const int n =10;int a[n];
  13. 开机显示无法登录到你的账户解决方法(亲测)
  14. 实践+收藏版——Linux 性能优化知识点总结大全!
  15. Linux(Centos7)下,阿帕奇(Apache)服务器的安装与配置
  16. 电脑怎么卸载软件?彻底卸载软件,4个方法分享
  17. 很有创意的吐司折叠坐垫
  18. Twenty-ninth
  19. 全人类最冷的42个笑话
  20. 无向图的连通分支数(并查集)

热门文章

  1. matlab 向量_MatLab简易教程 #4.向量、矩阵操作命令
  2. 使用浏览器插件,下载网页中的图片
  3. 微软 Teams 可以排排坐了~~ C位你要不要?
  4. Elasticsearch:跨集群复制 Cross-cluster replication(CCR)
  5. 南加利福尼亚大学计算机博士,斑马博士|南加州大学(USC) MSc Electronic Engineering (Computer Network)...
  6. 锁存器Latch和触发器Flip-flop的区别
  7. 计算机专业的创意文案,抖音创意文案大全
  8. Oracle 查询:一小时内、一天内、一周内等
  9. DZ论坛+克米模板3.5版本全解密+教程
  10. JavPlayer 109 1.09 AI破坏马赛克