在用 C 解决问题时,我无法理解这个名为“Convert an Array Into a 2D Array With Conditions”的问题

问题描述 投票:0回答:1

这个问题叫做“Convert an Array Into a 2D Array With Conditions”,我试图用 C 来解决这个问题。但是我无法理解我必须返回什么以及函数中传递的参数,例如它的用途一个名为 return size 的指针和一个指向名为 columnsize 的指针的指针。

问题就像... **给定一个整数数组 nums。您需要从 nums 创建一个满足以下条件的二维数组:

->二维数组应仅包含数组 nums 的元素。

->二维数组中的每一行都包含不同的整数。

->二维数组中的行数应该最少。

->返回结果数组。如果有多个答案,请返回其中任何一个。

请注意,二维数组每行可以有不同数量的元素。**

示例是:-

** 输入:nums = [1,3,4,1,2,3,1]

输出:[[1,3,4,2],[1,3],[1]]

说明:我们可以创建一个包含以下行的二维数组:

  • 1,3,4,2
  • 1,3
  • 1

使用了 nums 的所有元素,并且二维数组的每一行都包含不同的整数,因此这是一个有效的答案。 可以证明,有效数组中的行数不能少于 3 行。**

 /*
 * 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** findMatrix(int* nums, int numsSize, int* returnSize, int** returnColumnSizes){

}

arrays c pointers multidimensional-array
1个回答
0
投票

但我无法理解我必须返回什么以及在函数中传递的参数,例如使用名为“返回大小”的指针和一个指向名为“列大小”的指针的指针。

参数

nums
是指向包含输入值的数组的第一个元素的指针。

参数

numsSize
是上面数组中元素的数量。

参数

returnSize
是一个指针,指向函数必须在输出数组中存储行数的位置。

参数

returnColumnSizes
是一个指针,指向函数必须存储其分配的内存指针的位置,并且该内存将包含一系列值,这些值是输出“数组”的行中的元素数量。例如,“数组”[[1, 3, 4, 2], [1, 3], [1]] 包含三行,分别包含 4、2 和 1 个元素,因此您可以将
returnColumnSizes
设置为指向您存储
int
值 4、2 和 1 的内存。

函数返回值是指向函数分配的内存的指针,并且该内存针对输出数组中的每一行包含一个指针。这些指针中的每一个都指向您的函数分配的附加内存,并且对于每个指针,该内存包含输出数组的相应行的元素。

© www.soinside.com 2019 - 2024. All rights reserved.