题解 | #两数之和#

两数之和

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

两遍for循环进行判断,如果和目标数相同直接return,如果出了for循环还找不到就return 0(题目已经写明了是肯定找得到的)

  • 需要注意的是,这里必须要加一个continue语句,当第一个数已经大于我们的目标数的时候,不再执行后面的第二个for循环,这样能大大减少判断次数。如果不这么写,会超时
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param numbers int整型一维数组 
 * @param numbersLen int numbers数组长度
 * @param target int整型 
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int* twoSum(int* numbers, int numbersLen, int target, int* returnSize) {
    int* ptr = (int*)calloc(2, sizeof(int));
    for (int i = 0; i < numbersLen; i++)// write code here
    {
        if (numbers[i] > target)
            continue;
        for (int j = i + 1; j < numbersLen; j++)
        {
            int sum = numbers[i] + numbers[j];
            if (sum == target)
            {
                ptr[0] = i + 1;
                ptr[1] = j + 1;
                *returnSize = 2;
                return ptr;
            }
        }
    }
    *returnSize = 0;
    return 0;
}

alt

全部评论
6666666666,差一个条件就不超时了~
1 回复 分享
发布于 2022-02-17 17:48
虽然能通过但是有问题呀,若是一个大于target的数加上一个负数刚好等于target呢
5 回复 分享
发布于 2022-08-02 15:36
[3,2,-1]2 如何应对?
点赞 回复 分享
发布于 2024-02-23 14:30 山东

相关推荐

我的人生算是废了,23届裸辞空档一年,存款只能坚持几个月了,找不到像样的工作了,人生何去何从。
梦想是成为七海千秋:这大环境下为什么要裸辞呀,风险真的挺大的,而且社招的话23届没有太多的竞争力,不过既然已经裸辞了就不要焦虑慢慢找。
点赞 评论 收藏
分享
昨天 18:30
门头沟学院 Java
据说名字越长别人越关注你的昵称我觉得我要被关注了:你问问这里面有多少是正经候选人,而不是乱打招呼的
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
点赞 评论 收藏
分享
评论
6
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务