《算法零基础100讲》(第3讲) 矩阵
Posted -98K
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《算法零基础100讲》(第3讲) 矩阵相关的知识,希望对你有一定的参考价值。
今天打卡的章节是《算法零基础100讲》(第3讲) 矩阵;
附上链接:https://blog.csdn.net/WhereIsHeroFrom/article/details/120875129
目录
力扣习题
int maximumWealth(int** accounts, int accountsSize, int* accountsColSize)
int num1=accountsSize;
int num2=accountsColSize[0];
int max=0;
for(int i=0;i<num1;i++)
int sum=0;
for(int j=0;j<num2;j++)
sum=sum+accounts[i][j];
if(sum>max)
max=sum;
return max;
int numSpecial(int** mat, int matSize, int* matColSize)
int num1=matSize;
int num2=matColSize[0];
int sum=0;
for(int i=0;i<num1;i++)
int single1=0,single2=0;
int flag=0;
for(int j=0;j<num2;j++)
if(mat[i][j]==1)
single1++;
flag=j;
if(single1==1)
for(int k=0;k<num1;k++)
if(mat[k][flag]==1)
single2++;
if(single2==1)
sum++;
return sum;
/**
* Return an array of arrays of size *returnSize.
* The sizes of the arrays are returned as *returnColumnSizes array.
* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
*/
int **mymalloc(int num1,int num2,int *returnSize,int **returnColumnSizes)
int **ans=(int **)malloc(sizeof(int *)*num1);
*returnColumnSizes=(int *)malloc(sizeof(int)*num1);
*returnSize=num1;
for(int i=0;i<num1;i++)
ans[i]=(int *)malloc(sizeof(int)*num2);
(*returnColumnSizes)[i]=num2;
return ans;
int** flipAndInvertImage(int** image, int imageSize, int* imageColSize, int* returnSize, int** returnColumnSizes)
int num1=imageSize;
int num2=imageColSize[0];
int **ans=mymalloc(num1,num2,returnSize,returnColumnSizes);
for(int i=0;i<num1;i++)
for(int j=0;j<num2;j++)
ans[i][j]=1-image[i][num2-1-j];
return ans;
void rotate(int** matrix, int matrixSize, int* matrixColSize)
int num=matrixSize;
int **ans=(int **)malloc(sizeof(int *)*num);
for(int i=0;i<num;i++)
ans[i]=(int *)malloc(sizeof(int *)*num);
for(int i=0;i<num;i++)
for(int j=0;j<num;j++)
ans[j][num-i-1]=matrix[i][j];
for(int i=0;i<num;i++)
for(int j=0;j<num;j++)
matrix[i][j]=ans[i][j];
/**
* Return an array of arrays of size *returnSize.
* The sizes of the arrays are returned as *returnColumnSizes array.
* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
*/
int** construct2DArray(int* original, int originalSize, int m, int n, int* returnSize, int** returnColumnSizes)
if(originalSize!=m*n)
*returnSize=0;
return original;
int **ans=(int **)malloc(sizeof(int *)*m);
*returnColumnSizes=(int *)malloc(sizeof(int)*m);
*returnSize=m;
for(int i=0;i<m;i++)
ans[i]=(int *)malloc(sizeof(int)*n);
(*returnColumnSizes)[i]=n;
int k=0;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
ans[i][j]=original[k++];
return ans;
待写
待写
待写
最后
临近考试了,最近一堆作业和考试,等过段时间有空再把最后三道题补上以及完善这些题的解题过程。
以上是关于《算法零基础100讲》(第3讲) 矩阵的主要内容,如果未能解决你的问题,请参考以下文章