[学习报告]《LeetCode零基础指南》(第九讲) 二级指针

x33g5p2x  于2021-11-30 转载在 其他  
字(1.3k)|赞(0)|评价(0)|浏览(163)

第一题:832. 翻转图像

第二题:867. 转置矩阵

第三题:566. 重塑矩阵

第四题2022. 将一维数组转变成二维数组

第一题: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;
    }
}

相关文章