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

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

微信图片_20220106114020.png


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


微信图片_20220106114045.png


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


微信图片_20220106114110.png


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


微信图片_20220106114140.png

目录
相关文章
|
2月前
|
算法 容器
【算法】——双指针算法合集(力扣)
移动零,复写零,快乐数,盛最多水的容器,有效三角形的个数,和为s的两个数(查找总价格为目标值的两个商品 ),三数之和,四数之和
|
4月前
|
C语言
学习——理解指针(4)(指针学习最后一节)
学习——理解指针(4)(指针学习最后一节)
|
4月前
|
存储 C++
学习——理解指针(3)
学习——理解指针(3)
|
4月前
|
编译器
学习——理解指针(2)
学习——理解指针(2)
|
4月前
|
存储
学习——理解指针(1)
学习——理解指针(1)
|
6月前
|
Python
【Leetcode刷题Python】138. 复制带随机指针的链表
LeetCode上题目“138. 复制带随机指针的链表”的Python解决方案,包括两种方法:一种是在每个节点后复制一个新节点然后再分离出来形成新链表;另一种是构建一个字典来跟踪原始节点与其副本之间的映射关系,从而处理新链表的构建。
33 1
|
7月前
|
存储 安全 编译器
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
|
8月前
|
算法
【经典LeetCode算法题目专栏分类】【第7期】快慢指针与链表
【经典LeetCode算法题目专栏分类】【第7期】快慢指针与链表
|
8月前
|
算法 容器
【经典LeetCode算法题目专栏分类】【第1期】左右双指针系列:盛最多水的容器、接雨水、回文子串、三数之和
【经典LeetCode算法题目专栏分类】【第1期】左右双指针系列:盛最多水的容器、接雨水、回文子串、三数之和