这个题,提交能通过的答案无法通过 [3,-2,4],1 这个例子,下面的代码能通过,但会超过所要求的时间,不知道还有没有其他方法
int haveFUshu(int* numbers, int numbersLen){
for(int i=0;i<numbersLen;i++){
if(numbers[i]<0){
return 1;
}
}
return 0;
}
int* twoSum(int* numbers, int numbersLen, int target, int* returnSize ) {
// write code here
*returnSize=2;
int *ret = (int *)malloc(sizeof(int) * 2);
for(int j=0;j<numbersLen;j++){
if (numbers[j] > target && haveFUshu(numbers,numbersLen)==0) //如果不这样判断,最简单的[3,-2,4],1,无法通过,但提交会超时,
continue; //如果想通过题目,去掉&& haveFUshu(numbers,numbersLen)==0即可
for(int i=j+1;i<numbersLen;i++){
if(numbers[j]+numbers[i]==target){
ret[0]=j+1;
ret[1]=i+1;
return ret;
}
}
}
return ret;
}