1-3-顺时针旋转矩阵
1 /* 2 题目描述: 3 有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。 4 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。 5 测试样例: 6 [[1,2,3],[4,5,6],[7,8,9]],3 7 返回:[[7,4,1],[8,5,2],[9,6,3]] 8 */ 9 /* 10 将矩阵顺时针旋转90度 11 一圈一圈的进行旋转(交换)。 12 eg: 13 1 2 3 14 4 5 6 15 7 8 9 16 先旋转外圈: 17 首先交换1->3->9->7->1; 18 然后交换2->6->8->4->2; 19 */ 20 #include <iostream> 21 #include <vector> 22 using namespace std; 23 24 void rotateEdge(vector<vector<int> > &m, int tr, int tc, int dr, int dc){ 25 int times = dc - tc; 26 int tmp = 0; 27 for (int i = 0; i < times; i++){ 28 tmp = m[tr][tc+i]; 29 m[tr][tc+i] = m[dr-i][tc]; 30 m[dr-i][tc] = m[dr][dc-i]; 31 m[dr][dc-i] = m[tr+i][dc]; 32 m[tr+i][dc] = tmp; 33 } 34 } 35 vector<vector<int> > rotateMatrix(vector<vector<int> > mat, int n) { 36 // write code here 37 int tR = 0; 38 int tC = 0; 39 int dR = n-1; 40 int dC = n-1; 41 while (tR < dR){ 42 rotateEdge(mat, tR++, tC++, dR--, dC--); 43 } 44 return mat; 45 } 46 int main(){ 47 vector<vector<int> > matrix; 48 vector<int> a; 49 a.push_back(1); 50 a.push_back(2); 51 a.push_back(3);/* 52 a.push_back(4);*/ 53 matrix.push_back(a); 54 55 vector<int> b; 56 b.push_back(4); 57 b.push_back(5); 58 b.push_back(6);/* 59 b.push_back(8);*/ 60 matrix.push_back(b); 61 62 vector<int> c; 63 c.push_back(7); 64 c.push_back(8); 65 c.push_back(9);/* 66 c.push_back(12);*/ 67 matrix.push_back(c); 68 69 vector<vector<int> > rt; 70 rt = rotateMatrix(matrix,3); 71 for (int i = 0; i < 3; i++){ 72 for (int j = 0; j < 3; j++) 73 cout << rt[i][j] << ","; 74 cout << endl; 75 } 76 return 0; 77 }
转载于:https://www.cnblogs.com/qianmacao/p/4884715.html
1-3-顺时针旋转矩阵相关推荐
- 牛客题霸 [顺时针旋转矩阵] C++题解/答案
牛客题霸 [顺时针旋转矩阵] C++题解/答案 题目描述 有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度. 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于 ...
- 牛客题霸 NC18 顺时针旋转矩阵
https://www.nowcoder.com/practice/2e95333fbdd4451395066957e24909cc 解决方案 Go func rotateMatrix(mat [][ ...
- 顺时针旋转矩阵的两种方法
(本来是校赛的水题,没想到我太不给力..) Description 一天无聊的DDF在玩弄矩阵:他把矩阵的子矩阵旋转了. 具体来说就是给定一个n*n的初始矩阵,然后DDF每次给出三个数(x,y,r)代 ...
- 牛客-顺时针旋转矩阵
题目 描述 有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度. 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵. 数据范围:0<n<300,矩阵中的值满足 0≤ ...
- 旋转矩阵,矩阵,共轭矩阵
旋转矩阵,矩阵,共轭矩阵 1.旋转矩阵 1. 旋转矩阵简介 2. 性质 3. 二维空间 3.1 普通旋转 3.2 复平面 4. 三维空间 4.1 旋转 4.2 角-轴表示和四元数表示 4.3 欧拉角表 ...
- 自定义输入矩阵,顺时针输出或顺时针旋转后输出
注意: c++是不支持使用变量构建数组的,虽然可以用vector的方式,但不太友好,所以我就直接构建了一个101*101的数组,就题目来说够用了. 我单独考虑了一维数组的情况,因为下面swich操作时 ...
- java 矩阵_(JAVA)计算机图形学与矩阵
(JAVA)计算机图形学与矩阵 平移 旋转 变比 一)矩阵 1)矩阵的乘法运算 矩阵是计算机图形学的重要工具. 计算机图形学要常常用到 矩阵乘法(矩阵与矩阵相乘). 矩阵(Aij)m*n 与矩阵(Bi ...
- 牛客题霸题目及题解汇总
牛客题霸 单链表的选择排序 C++题解/答案 牛客题霸 最少素数拆分 C++题解/答案 牛客题霸 两数之和 C++题解/答案 牛客题霸 反转链表 C++题解/答案 牛客题霸 二分查找 C++题解/答案 ...
- LeetCode - 48. Rotate Image
48. Rotate Image Problem's Link -------------------------------------------------------------------- ...
- 2023年春招热门笔试算法题(C++)
内容整理自网络,侵权联系删除 1.链表反转 输入:{1,2,3} 返回值:{3,2,1} struct ListNode {int val;struct ListNode *next;ListNode ...
最新文章
- IE浏览器Cookie信息提取工具Galleta
- 5种IO模式形象的比喻
- Android之webview与js交互
- 大并发下程序出错_Python并发编程理论篇
- HTML5 新特性
- 一次性存入多少钱就可以有资格跟银行商谈利息了?
- 使用Dockerfile构建Nginx,Tomcat,MySQL镜像
- 解决linux下javac -version和java -version版本显示不一致
- 关注VS.Net 2005
- [转]int String 互转的多种方法
- 20170810上课笔记
- hadoop ha环境下的datanode启动报错java.lang.NumberFormatException: For input string: 10m
- cmd跑绿色代码_cmd装逼代码-cmd命令,装逼
- ussd代码大全_USSD查询器app
- 读研攻略(6)—会议纪要
- ds5100更换电池 ibm_ibm/lenovoDS5100更换电池
- finecms V5 会员头像任意文件上传漏洞 附修复代码
- 高老师架构设计思考短句集(2)
- 阿里云亮眼财报背后,云的打开方式正在重塑
- app打包上传遇到的问题
热门文章
- Redis:17---常用功能之(事务)
- 算法(9)--两个数的最大公约数
- 将std::string字符串格式的数字转换为int类型的数字
- 通过字符串的方式读取文件的内容
- 密码机项目安装软件时候出现的问题以及对应的解决办法
- 《小狗钱钱》:理财首先应该有一种强烈的意识
- jackson 的注解:@JsonProperty、@JsonIgnore、@JsonFormat 用法说明
- 解决:bash: vim: command not found、docker 容器不识别 vi / vim 、docker 容器中安装 vim
- 根据一个属性,剔除 Json 中重复元素(删除 JSON 中重复的部分)
- 《 图解 HTTP 》读书笔记