commit
b601022ef1
77
src/main/java/com/leetcode/array/RotateMatrix.java
Normal file
77
src/main/java/com/leetcode/array/RotateMatrix.java
Normal file
@ -0,0 +1,77 @@
|
||||
package com.leetcode.array;
|
||||
|
||||
/**
|
||||
*
|
||||
* 旋转矩阵
|
||||
给你一幅由 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]
|
||||
]
|
||||
|
||||
作者:力扣 (LeetCode)
|
||||
链接:https://leetcode-cn.com/leetbook/read/array-and-string/clpgd/
|
||||
来源:力扣(LeetCode)
|
||||
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
|
||||
|
||||
答案解析:https://leetcode-cn.com/problems/rotate-matrix-lcci/solution/xuan-zhuan-ju-zhen-by-leetcode-solution/
|
||||
*/
|
||||
public class RotateMatrix {
|
||||
|
||||
public void rotate(int[][] matrix) {
|
||||
int n = matrix.length;
|
||||
// 水平翻转
|
||||
for (int i = 0; i < n / 2; ++i) {
|
||||
for (int j = 0; j < n; ++j) {
|
||||
int temp = matrix[i][j];
|
||||
matrix[i][j] = matrix[n - i - 1][j];
|
||||
matrix[n - i - 1][j] = temp;
|
||||
}
|
||||
}
|
||||
// 主对角线翻转
|
||||
for (int i = 0; i < n; ++i) {
|
||||
for (int j = 0; j < i; ++j) {
|
||||
int temp = matrix[i][j];
|
||||
matrix[i][j] = matrix[j][i];
|
||||
matrix[j][i] = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user