int** construct2DArray(int* original, int originalSize, int m, int n, int* returnSize, int** returnColumnSizes){
if (originalSize != m * n) {//判断是否能构成二维数组
*returnSize = 0;// 返回大小为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;//返回二维数组
}
【leetcode 每日打卡】2022. 将一维数组转变成二维数组
最新推荐文章于 2024-07-31 15:06:32 发布