【牛客网】马三来刷题之顺时针旋转矩阵
题目链接:http://www.nowcoder.com/practice/2e95333fbdd4451395066957e24909cc?tpId=49&tqId=29373&rp=1&ru=/ta/2016test&qru=/ta/2016test/question-ranking
- 热度指数:2065时间限制:3秒空间限制:32768K
- 本题知识点: 编程基础
- 算法知识视频讲解
题目描述
有一个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]]
其实用笔画一下,找规律就可以了,见下图:
左面的矩阵经过旋转以后就变成了右面矩阵的样子,可以发现mat[i][j]被旋转到了mat[j][n-i-
1
]的位置,由此我们可以很快地写出代码:
vector<vector<int> > rotateMatrix(vector<vector<int> > mat, int n){vector<vector<int>> v(n,vector<int>(n));for(int i=0;i<n;i++)for(int j=0;j<n;j++)v[j][n-1-i]=mat[i][j];return v;}
或者还可以这么想,如上图,旋转前,矩阵是按照打印顺序1,由上至下一行一行打印的,旋转以后可以发现打印的顺序改变了,是按照打印顺序2
来
打印的,一列一列的由下至上的依次打印每个元素,因此我们新建一个矩阵,按照旋转后的矩阵的打印次序,依次把元素填入新的矩阵就可以了。
vector<vector<int> > rotateMatrix(vector<vector<int> > mat, int n)
{vector< vector<int> > v;for(int i=0; i<n; i++){vector<int> tmp;for(int j=n-1; j>=0; j--){tmp.push_back(mat[j][i]);}v.push_back(tmp);}return v;
}
每天一道题,保持新鲜感,就这样~
【牛客网】马三来刷题之顺时针旋转矩阵相关推荐
- 牛客网SQL 进阶篇刷题
牛客网SQL 进阶篇刷题(1-19) 用户1001在2021年9月1日晚上10点11分12秒开始作答试卷9001,并在50分钟后提交,得了90分: 用户1002在2021年9月4日上午7点1分2秒开始 ...
- 【自我救赎--牛客网Top101 4天刷题计划】 第三天 渐入佳境
第三天 声明:本系列文章仅适合二刷有经验的算法er学习,以后会出详细的每一题的讲解,这里只是简单的说明思路来帮助大家快速刷完Top101,另外博主的算法全程跟着 labuladong 大佬学习,这里特 ...
- 【自我救赎--牛客网Top101 4天刷题计划】 第四天 登峰造极
第四天 声明:本系列文章仅适合二刷有经验的算法er学习,以后会出详细的每一题的讲解,这里只是简单的说明思路来帮助大家快速刷完Top101,另外博主的算法全程跟着 labuladong 大佬学习,这里特 ...
- 【自我救赎--牛客网Top101 4天刷题计划】 第一天 热身运动
第一天 声明:本系列文章仅适合二刷有经验的算法er学习,以后会出详细的每一题的讲解,这里只是简单的说明思路来帮助大家快速刷完Top101,另外博主的算法全程跟着 labuladong 大佬学习,这里特 ...
- 为了OFFER系列 | 牛客网美团点评数据分析刷题
@Author:Runsen 对于大学的每一个阶段,都有着不同的意义,在大学期间一定要有明确的战略.打法,以及人生布局,才能最大程度的提升自己,才能在未来走的更远. 现如今大四,为了OFFER,冲啊 ...
- 原创 牛客网产品笔试题刷题打卡——用户研究
QQ和微信的区别. 1.产品定位 QQ:"每一天,乐在沟通",是一款基于互联网的社交通讯软件.QQ是PC互联网的产物,侧重社交,更娱乐化. 微信:"一个生活方式" ...
- string类函数和牛客网剑指offer刷题记录
1.strcat char* strcat(char *strDest,const char *strSrc){assert(strDest && strSrc);char *p = ...
- 牛客网C语言入门刷题(BC1 ~ BC50)
文章目录 BC1 实践出真知 BC2 我是大V BC3 有容乃大 BC6 小飞机 BC7 缩短二进制 BC8 十六进制转十进制 BC9 printf的返回值描述 BC10 成绩输入输出 BC11 学生 ...
- 牛客网java基础知识刷题记录-02
2022.2.17-2022.3.1 try块后必须有catch块.() 正确 错误 考察内容:try的形式有三种:1. try-catch2. try-finally3. try-catch-fin ...
- 原创 牛客网产品笔试题刷题打卡——需求分析/数据分析/文档攥写
ARPU(ARPU-AverageRevenuePerUser)即每用户平均收入.用于衡量电信运营商和互联网公司业务收入的指标.ARPU注重的是一个时间段内运营商从每个用户所得到的收入.很明显,高端的 ...
最新文章
- Redis和Memcached,干货来一波
- Dubbo(五)Dubbo 简单监控平台(monitor)搭建
- Java讲课笔记09:类与对象
- 【LeetCode】剑指 Offer 07. 重建二叉树
- 改变support中AlertDialog的样式
- 灰度MANA信托增持729.04万MANA,FIL持仓增长185%
- windows环境下unicode编程总结
- 最近做了个数据采集的工具
- 20.大型网站典型故障分析
- 北京地铁线路规划程序
- 轻量化html编辑器,建站“一气呵成” 推荐7大免费网页编辑器
- 大数据告诉你,中国今年最火打卡圣地竟然是它!
- 生成android使用的BKS证书
- {“errcode“:48001,“errmsg“:“api unauthorized, hints: [ req_id: xxxxxxx]“}
- python ddt mysql_40- 数据驱动(ddt)
- 不用全局plugin,项目在哭泣
- 鸿蒙系统跑分对比骁龙强吗,iQOO Z3 手机骁龙 768G 跑分对比天玑 1000+
- win10 sdk各种版本下载地址
- 什么是BIOS?为什么开机先从BIOS开始?以及操作系统启动过程
- 最新!2021中国大学排名发布:清/北/浙大/上交/武大居前五
热门文章
- drupal 8 php filter,Drupal 7 与 Drupal 8 的一些变化
- 自学python网站-python自学网站
- Java多线程并发笔记01 对象锁 类锁 对象锁的同步和异步 脏读
- 论文阅读|目标检测之CE-FPN,将通道增强运用到上采样,减少信息丢失,同时添加了通道注意力机制
- python爬虫的线程、进程、异步的基础讲解
- seo具体怎么优化-优化SEO的方法
- 用友u8 如何配置文件服务器,用友u8服务器软件配置
- 计算机msvcp100.dll,msvcp100.dll丢失怎样修复
- 教育培训行业的SOP
- 一位大牛对于写技术博客的一些建议