- 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。
不占用额外内存空间能否做到?
解题思路:
与自己想法基本一致,通过下标{i,j}的变化交换元素,通过for循环实现
注意:为了不占用额外内存空间,需要将新分配的内存释放.
JAVA
class Solution {
public void rotate(int[][] matrix) {
int [][] ans=new int[matrix.length][matrix[0].length];
int len=matrix.length;
for(int i=0;i<len;i++){
for(int j=0;j<len;j++){
ans[j][len-i-1]=matrix[i][j]; //(0,3)<-(0,0)
} //(0,2)<-(1,0)
} //(j,len-i-1)<-(i,j)
//为了不占用额外地址,将内存释放
for(int i=0;i<len;i++){
for(int j=0;j<len;j++){