今天打卡的章節是《演算法零基礎100講》(第3講) 矩陣;
附上鏈接:https://blog.csdn.net/WhereIsHeroFrom/article/details/120875129
目錄
力扣習題
最后
力扣習題
1672. 最富有客戶的資產總量
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;
}
1582. 二進制矩陣中的特殊位置
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;
}
832. 翻轉影像
/**
* 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;
}
48. 旋轉影像
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];
}
}
}
? 2022. 將一維陣列轉變成二維陣列 ?
/**
* 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;
}
1886. 判斷矩陣經輪轉后是否一致
待寫
1260. 二維網格遷移
待寫
54. 螺旋矩陣
待寫
最后
臨近考試了,最近一堆作業和考試,等過段時間有空再把最后三道題補上以及完善這些題的解題程序,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/382140.html
標籤:其他
