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

举报
执久呀 发表于 2022/02/18 16:05:15 2022/02/18
【摘要】 ​ 目录第一题:832. 翻转图像 第二题:867. 转置矩阵 第三题:566. 重塑矩阵第四题2022. 将一维数组转变成二维数组第一题:832. 翻转图像class Solution { public int[][] flipAndInvertImage(int[][] image) { int row=image.length; int col=image...

 目录


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


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。