1 两个求和:
给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。
您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。
例:
给定nums = [2,7,11,15],target = 9,
因为nums [ 0 ] + nums [ 1 ] = 2 + 7 = 9,
返回[ 0,1 ]。
我当时想的是这个函数里变量都是局部变量,无法返回数组,全局变量不考虑,后来见讨论区说用malloc,恍然大悟,可以用动态内存存储局部变量
code:
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* twoSum(int* nums, int numsSize, int target) {
int i,j;
int *index=(int *)malloc(sizeof(int)*2);
for(i=0;i<numsSize;i++){
for(j=0;j<numsSize;j++){
if(nums[i]+nums[j]==target&&i!=j){
index[0]=i;
index[1]=j;
return index;
}
}
}
return NULL;
}