LeetCode: 48. Rotate Image
阿新 • • 發佈:2018-01-14
leetcode png i++ pro pre ota println blog ati
1. 原題鏈接
https://leetcode.com/problems/rotate-image/description/
2. 題目要求
給定一個由 n*n 的二維數組 matrix[ ] [ ] 構成的矩陣,將這個矩陣順時針方向旋轉90度,並輸出。如下圖所示
3. 解題思路
首先對每一行進行交換,得到上圖中的中間結果;
然後再交換 關於對角線對稱的元素:matrix [ i ][ j ] 和 matrix[ j ][ i ]。如下圖所示:
4. 代碼實現
public class RotateImage48 { public static void main(String[] args) { int[][] matrix = {{1, 2, 3, 5}, {4, 5, 6, 7}, {7, 8, 9, 9}, {2, 3, 4, 5}}; rotate(matrix); for (int[] x : matrix) { for (int y : x) System.out.print(y + " "); System.out.println(); } } public static void rotate(int[][] matrix) { int a = 0, b = matrix.length - 1; // 交換行 while (a < b) { int[] temp = matrix[a]; matrix[a] = matrix[b]; matrix[b] = temp; a++; b--; } //交換對稱元素 for (int i = 0; i < matrix.length; i++) { for (int j = i + 1; j < matrix[i].length; j++) { int temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; } } } }
LeetCode: 48. Rotate Image