【发布时间】:2021-05-07 07:27:16
【问题描述】:
更新:它不起作用,因为我没有在函数内部设置returnSize,并且 leetcode 期望该参数具有 Jerry Jeremiah 在 cmets 中所说的值。
问题出在:给定数组 nums 由 2n 元素组成,形式为 [x1,x2,...,xn,y1,y2,...,yn]。
以[x1,y1,x2,y2,...,xn,yn]的形式返回数组
int* shuffle(int* nums, int numsSize, int n, int* returnSize) {
int *answer = (int*) malloc(numsSize * sizeof(int));
int a,k,i;
for (i = 0, k = n, a = 0; i < numsSize-1; i += 2, k++, a++) {
answer[i] = nums[a];
answer[i+1] = nums[k];
}
return answer;
}
首先我认为我无法正确分配内存,但我认为并非如此。
我已经尝试了其他几种方法来解决这个问题,但输出都是一样的,我不知道为什么?
即使代码相同,我的输出对于相同的测试也会有所不同。其中一些是:[]、]、[2,1]
我不是在寻找解决问题的另一种方法。我只是想知道为什么我得到这些输出 leetcode 但不在我的 vscode 中。
你们能帮我弄清楚吗?
【问题讨论】:
-
尝试在调试器中单步调试代码。此外,请在与他人共享之前格式化您的代码(为了您自己的理智,TBH)
-
按要求重新格式化。
-
你没有在函数内部设置 returnSize 并且 leetcode 可能期望该参数有一个值。
-
哦.. 成功了。谢谢!
-
@Dankindonut,您将 returnSize 设置为什么?我也有类似的问题。
标签: arrays dynamic-memory-allocation