题解 | #两数之和#

两数之和

http://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f

这个题,提交能通过的答案无法通过 [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;
}
全部评论

相关推荐

spiritecs:没实习非985211硕很难很难,只能说祝早日成功
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务