淮北市矿务局工程建设公司网站,南宁兴宁区建设局网站,北京别墅设计网站,中国建筑工程承包网1 /*2 题目描述#xff1a;3 有一个NxN整数矩阵#xff0c;请编写一个算法#xff0c;将矩阵顺时针旋转90度。4 给定一个NxN的矩阵#xff0c;和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。5 测试样例#xff1a;6 [[… 1 /*2 题目描述3 有一个NxN整数矩阵请编写一个算法将矩阵顺时针旋转90度。4 给定一个NxN的矩阵和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。5 测试样例6 [[1,2,3],[4,5,6],[7,8,9]],37 返回[[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(vectorvectorint 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][tci];
29 m[tr][tci] m[dr-i][tc];
30 m[dr-i][tc] m[dr][dc-i];
31 m[dr][dc-i] m[tri][dc];
32 m[tri][dc] tmp;
33 }
34 }
35 vectorvectorint rotateMatrix(vectorvectorint 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 vectorvectorint matrix;
48 vectorint 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 vectorint 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 vectorint 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 vectorvectorint 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