【leetcode】重塑矩阵

 

int** matrixReshape(int** nums, int numsSize, int* numsColSize, int r, int c, int* returnSize, int** returnColumnSizes){
    if (r*c != numsSize*(*numsColSize)) 
    {
        *returnSize = numsSize;
        *returnColumnSizes = numsColSize;
        return nums;
    }
    *returnColumnSizes = (int*)malloc(sizeof(int) * r);
    int** arr = (int**)calloc(r,sizeof(int*));
    int i,j,n=0;
    for (i=0; i<r; i++)
    {
        int* p = (int*)calloc(c,sizeof(int));
        arr[i] = p;
        (*returnColumnSizes)[i] = c;
    }
    for (i=0; i<numsSize; i++)
    {
        for (j=0; j<numsColSize[i]; j++)
        {
            arr[(i*numsColSize[i]+j)/c][(i*numsColSize[i]+j)%c] = nums[i][j];
        }
    }
    *returnSize = r;
    return arr;
}

 

posted @ 2020-09-08 08:40  温暖了寂寞  阅读(161)  评论(0编辑  收藏  举报