第一题:832. 翻转图像
class Solution { public int[][] flipAndInvertImage(int[][] image) { int row=image.length; int col=image[0].length; int arr[][]=new int [row][col]; for(int i=0;i<row;i++){ for(int j=0;j<col;j++){ arr[i][col-1-j]=image[i][j]; } } for(int i=0;i<row;i++){ for(int j=0;j<col;j++){ if(arr[i][j]==1)arr[i][j]=0; else arr[i][j]=1; } } return arr; } }
第二题:867. 转置矩阵
class Solution { public int[][] transpose(int[][] matrix) { int row=matrix.length; int col=matrix[0].length; int arr[][]=new int[col][row]; for(int i=0;i<row;i++){ for(int j=0;j<col;j++){ arr[j][i]=matrix[i][j]; } } return arr; } }
第三题:566. 重塑矩阵
class Solution { public int[][] matrixReshape(int[][] mat, int r, int c) { //当此中不相等,这说明不存在,则返回原来的数组即可 if(r*c!=mat.length*mat[0].length){return mat;} int arr[][]=new int [r][c]; int m=0,n=0; for(int i=0;i<mat.length;i++){ for(int j=0;j<mat[0].length;j++){ arr[m][n++]=mat[i][j]; if(n==c){//当达到指定列数时换行,累加的列清零。 n=0;m++; } } } return arr; } }
第四题2022. 将一维数组转变成二维数组
class Solution { public int[][] construct2DArray(int[] original, int m, int n) { //申明一个数组 int res[][]={}; if(m*n!=original.length)return res; // 创建一个动态开辟空间的数组 int arr[][]=new int[m][n];//不能一开始就写这个,否则本当返回[],就会返回[[0]] int k=0; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ arr[i][j]=original[k++]; if(k==original.length) break; } } return arr; } }