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

6 篇文章 0 订阅

en,感觉今天有点难

1、翻转图像

int **myMalloc(int r,int c,int *returnSize,int **returnColumnSizes){
int i;
int **ret=(int **)malloc(r*sizeof(int *));
*returnColumnSizes=(int *)malloc(r*sizeof (int ));
*returnSize=r;
for(i=0;i<r;++i){
ret[i]=(int *)malloc(sizeof(int )*c);
(*returnColumnSizes)[i]=c;
}
return ret;
}
int** flipAndInvertImage(int** image, int imageSize, int* imageColSize, int* returnSize, int** returnColumnSizes){
int r=imageSize,c=imageColSize[0];
int **ret=myMalloc(r,c,returnSize,returnColumnSizes);
for(int i=0;i<r;++i){
for(int j=0;j<c;++j){
ret[i][j]=1-image[i][c-1-j];
}
}
return ret;
}


2、转置矩阵

int **myMalloc(int r,int c,int *returnSize,int **returnColumnSizes){
int i;
int **ret=(int **)malloc(r*sizeof(int *));
*returnColumnSizes=(int *)malloc(r*sizeof (int ));
*returnSize=r;
for(i=0;i<r;++i){
ret[i]=(int *)malloc(sizeof(int )*c);
(*returnColumnSizes)[i]=c;
}
return ret;
}

int** transpose(int** matrix, int matrixSize, int* matrixColSize, int* returnSize, int** returnColumnSizes){
int  c=matrixSize,r=matrixColSize[0];
int **ret=myMalloc(r,c,returnSize,returnColumnSizes);
for(int i=0;i<r;++i){
for(int j=0;j<c;++j){
ret[i][j]=matrix[j][i];
}
}
return ret;
}


3、重塑矩阵

int **myMalloc(int r,int c,int *returnSize,int **returnColumnSizes){
int i;
int **ret=(int **)malloc(r*sizeof(int *));
*returnColumnSizes=(int *)malloc(r*sizeof (int ));
*returnSize=r;
for(i=0;i<r;++i){
ret[i]=(int *)malloc(sizeof(int )*c);
(*returnColumnSizes)[i]=c;
}
return ret;
}

int** matrixReshape(int** mat, int matSize, int* matColSize, int r, int c, int* returnSize, int** returnColumnSizes){
int m=matSize,n=matColSize[0];
int i,j;
int id;
int **ret =myMalloc(r,c,returnSize,returnColumnSizes);
if(m*n!=r*c){
*returnSize=m;
for(i=0;i<m;++i){
(*returnColumnSizes)[i]=n;
}
return mat;
}

for(i=0;i<r;++i){
for(j=0;j<c;++j){
id = i*c+j;
ret[i][j]=mat[id/n][id%n];
}
}
return ret;
}


4、将一维数组转变为二维数组

int **myMalloc(int r,int c,int *returnSize,int **returnColumnSizes){
int i;
int **ret=(int **)malloc(r*sizeof(int *));
*returnColumnSizes=(int *)malloc(r*sizeof (int ));
*returnSize=r;
for(i=0;i<r;++i){
ret[i]=(int *)malloc(sizeof(int )*c);
(*returnColumnSizes)[i]=c;
}
return ret;
}

int** construct2DArray(int* original, int originalSize, int m, int n, int* returnSize, int** returnColumnSizes){
int **ret=myMalloc(m,n,returnSize,returnColumnSizes);
if(m*n!=originalSize){
*returnSize=0;
return ret;
}

for(int i=0;i<m;++i){
for(int j=0;j<n;++j){
ret[i][j]=original[i*n+j];
}
}
return ret;
}


5、二维网格迁移

6、图片平滑器

7、矩阵区域和

8、距离顺序排列矩阵单元格

04-10 60

03-21 49
12-17 559
10-20 7767
12-12 175
12-15 5287
05-21 38

### “相关推荐”对你有帮助么？

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助

먼지by

¥2 ¥4 ¥6 ¥10 ¥20

1.余额是钱包充值的虚拟货币，按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载，可以购买VIP、C币套餐、付费专栏及课程。