leetcode-48 旋轉影象
阿新 • • 發佈:2018-12-22
給定一個 n × n 的二維矩陣表示一個影象。
將影象順時針旋轉 90 度。
說明:
你必須在原地旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要使用另一個矩陣來旋轉影象。
示例 :
給定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ] 原地旋轉輸入矩陣,使其變為: [ [7,4,1], [8,5,2], [9,6,3] ]
public void rotate(int[][] matrix) { int tR = 0;//行 int tC = 0;//列 int dR = matrix.length - 1;//行 int dC = matrix[0].lenght - 1;//列 while(tR < dR){ rotateEdge(matrix, tR++, tC++, dR--, dC--); } } public static void rotateEdge(int[][] nums, int tR, int tC, int dR, int dC){ int times = dC - tC; int temp = 0; for(int i = 0; i < times; i++){//交換四個點 temp = nums[tR][tC + i]; nums[tR][tC + i] = nums[dR - i][dC]; nums[dR - i][dC] = nums[dR][dC - i]; nums[dR][dC - i] = nums[tR + i][dC]; nums[tR + i][dC] = temp; } }