day888888888888888

无糖Glacole 2022-04-10 20:22:33

int **myMalloc(int r, int c, int* returnSize, int** returnColumnSizes) {

    int i;

    int **ret = (int **)malloc( sizeof(int *) * r );        

    *returnColumnSizes = (int *)malloc( sizeof(int) * r );  

    *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 i, j;                                                 

    int r = imageSize, c = imageColSize[0];                   

    int **ret = myMalloc(r, c, returnSize, returnColumnSizes); 

    for(i = 0; i < r; ++i) {

        for(j = 0; j < c; ++j) {

            ret[i][j] = 1 - image[i][ c-1-j ];              

        }

    }

    return ret;                                                

}

int** transpose(int** matrix, int matrixSize, int* matrixColSize, int* returnSize, int** returnColumnSizes) {

    int m = matrixSize, n = matrixColSize[0];

    int** transposed = malloc(sizeof(int*) * n);

    *returnSize = n;

    *returnColumnSizes = malloc(sizeof(int) * n);

    for (int i = 0; i < n; i++) {

        transposed[i] = malloc(sizeof(int) * m);

        (*returnColumnSizes)[i] = m;

    }

    for (int i = 0; i < m; i++) {

        for (int j = 0; j < n; j++) {

            transposed[j][i] = matrix[i][j];

        }

    }

    return transposed;

}

int** matrixReshape(int** nums, int numsSize, int* numsColSize, int r, int c, int* returnSize, int** returnColumnSizes) {

    int m = numsSize;

    int n = numsColSize[0];

    if (m * n != r * c) {

        *returnSize = numsSize;

        *returnColumnSizes = numsColSize;

        return nums;

    }

    *returnSize = r;

    *returnColumnSizes = malloc(sizeof(int) * r);

    int** ans = malloc(sizeof(int*) * r);

 

    for (int i = 0; i < r; i++) {

        (*returnColumnSizes)[i] = c;

        ans[i] = malloc(sizeof(int) * c);

    }

    for (int x = 0; x < m * n; ++x) {

        ans[x / c][x % c] = nums[x / n][x % n];

    }

    return ans;

}


int** construct2DArray(int* original, int originalSize, int m, int n, int* returnSize, int** returnColumnSizes){    

    if (originalSize != m * n) {

        *returnSize = 0;

        return NULL;

    }

    int ** ans = (int **)malloc(sizeof(int *) * m);

    *returnColumnSizes = (int *)malloc(sizeof(int) * m);

    for (int i = 0; i < m; ++i) {

        ans[i] = (int *)malloc(sizeof(int) * n);

        (*returnColumnSizes)[i] = n;

    }

    for (int i = 0; i < originalSize; i += n) {

        memcpy(ans[i / n], original + i, sizeof(int) * n);

    }

    *returnSize = m;

    return ans;

}


 

 

 

 

...全文
47 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

64,199

社区成员

发帖
与我相关
我的任务
社区描述
学习「 算法 」的捷径就是 「 题海战略 」,社区由「 夜深人静写算法 」作者创建,三年ACM经验,校集训队队长,亚洲区域赛金牌,世界总决赛选手。社区提供系统的训练,答疑解惑,面试经验,大厂内推等机会
社区管理员
  • 英雄哪里出来
  • 芝麻粒儿
  • Amy卜bo皮
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

QQ群:480072171

英雄算法交流 8 群

 

试试用AI创作助手写篇文章吧