順時針旋轉矩陣

題目描述

有一個NxN整數矩陣,請編寫一個算法,將矩陣順時針旋轉90度。 給定一個NxN的矩陣,和矩陣的階數N,請返回旋轉後的NxN矩陣。保證N小於或等於300。java

測試樣例

[[1, 2, 3], [4, 5, 6], [7, 8, 9]], 3
返回:[[7, 4, 1], [8, 5, 2], [9, 6. 3]]

解題思路

旋轉前的矩陣的一列是旋轉後的矩陣的一行。算法

解決方案

import java.util.*;

public class Rotate {
	public int[][] rotateMatrix(int[][] mat, int n) {
		int[][] rst = new int[n][n];
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				rst[i][j] = mat[n - j - 1][i];

			}
		}
		return rst;
	}

	public static void main(String[] args) {
		Rotate obj = new Rotate();
		int[][] mat = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
		int[][] rs = obj.rotateMatrix(mat, 3);
		for (int i = 0; i < 3; i++) {
			for (int j = 0; j < 3; j++) {
				System.out.print(rs[i][j] + " ");
			}
			System.out.println();
		}
	}
}
相關文章
相關標籤/搜索