题目
代码
解法1:
int* getConcatenation(int* nums, int numsSize, int* returnSize){
int* connect=malloc(sizeof(int)*numsSize*2);
int p=0;
for(int i=0;i<2;i++)
{
for(int j=0;j<numsSize;j++)
{
connect[p++]=nums[j];
}
}
* returnSize=numsSize*2;
return connect;
}
解法2:
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* getConcatenation(int* nums, int numsSize, int* returnSize) {
//定义一个长度为nums数组长度两倍的数组ans
int* ans = malloc(2*numsSize * sizeof(int));
int i = 0;
//遍历nums数组,将下标为x的元素分别赋值给ans数组中下标为x和下标为x+m的元素;
for(i=0; i<numsSize; i++) {
ans[i] = nums[i];
ans[i+numsSize] = nums[i];
}
//更新数组长度并返回数组
*returnSize = 2*numsSize;
return ans;
}