旋轉矩陣(leetcode4 7每日打卡)

2022-01-15 11:56:07 字數 1949 閱讀 4308

給你一幅由 n × n 矩陣表示的影象,其中每個畫素的大小為 4 位元組。請你設計一種演算法,將影象旋轉 90 度。

不占用額外記憶體空間能否做到?

示例 1:

給定 matrix =

[

[1,2,3],

[4,5,6],

[7,8,9]

],

原地旋轉輸入矩陣,使其變為:

[

[7,4,1],

[8,5,2],

[9,6,3]

]

示例 2:

給定 matrix =

[

[ 5, 1, 9,11],

[ 2, 4, 8,10],

[13, 3, 6, 7],

[15,14,12,16]

],

原地旋轉輸入矩陣,使其變為:

[

[15,13, 2, 5],

[14, 3, 4, 1],

[12, 6, 8, 9],

[16, 7,10,11]

]

借助陣列:

1

void rotate(int** matrix, int matrixsize, int*matrixcolsize)211

}1213for(int i = 0; i < matrixsize; i++)

1419

}20 }

原地旋**

例如:1 2 3

4 5 6

7 8 9

先轉置:1 4 7

2 5 8

3 6 9

然後按照列以中心為軸兩邊值交換:

7 4 1

8 5 2

9 6 3

這裡學到了矩陣的原地轉置:

1

for (int i = 0; i < 2; i++)

210 }

題目**:

1

void rotate(int** matrix, int matrixsize, int*matrixcolsize)211

}1213int mid = matrixsize/2;14

for(int i = 0; i < matrixsize; i++)

1522

}23 }

leetCode48 旋轉矩陣

目錄 一 題目描述 二 解題思路 三 實現 給定乙個 n n 的二維矩陣表示乙個影象。將影象順時針旋轉 90 度。說明 你必須在原地旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要使用另乙個矩陣來旋轉影象。示例 1 給定 matrix 1,2,3 4,5,6 7,8,9 原地旋轉輸入矩陣,使其...

leetcode 21 旋轉矩陣

給定乙個 n n 的二維矩陣表示乙個影象。將影象順時針旋轉 90 度。說明 你必須在原地旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要使用另乙個矩陣來旋轉影象。像剝洋蔥一樣,一圈一圈旋轉,每一圈,分為四個元素的置換。算出來四個座標就行 class solution def rotate se...

LeetCode47全排列二

昨天沒有寫,今天補上哈。給定乙個可能包含重複數字的集合,返回所有可能的不同全排列。例如,1,1,2 有以下不同全排列 1,1,2 1,2,1 2,1,1 之前寫的是無重複數字的全排列,這次是有重複數字的,這就需要判斷一下是否要進行交換。在加入判斷時,判斷的範圍要注意,因為一開始沒有搞清楚交換的原理啊...