leetcode 1. 两数之和

两数之和:数组中寻找目标值的组合
这是一个关于算法的问题,目标是在给定的整数数组中找到两个数,使得它们的和等于给定的目标值。算法从数组的第一个元素开始,通过计算目标值与当前元素的差值,然后在剩余元素中查找这个差值,一旦找到就返回这两个数的索引。如果找不到符合条件的组合,则返回空结果。

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

int* twoSum(int* nums, int numsSize, int target, int* returnSize){
    
    int count =numsSize;
    int cur=0;
     int* ret = malloc(sizeof(int) * 2);
    while(count)
    {
        int temp=target-nums[cur];
        for(int i=1;i<(numsSize-cur);i++)
        {
            if(nums[cur+i]==temp)
                {
                    ret[0]=cur;
                    ret[1]=cur+i;
                    *returnSize = 2;
                    return ret; 
                }
        }
        count--;
        cur++;
    }
    *returnSize = 0;
    return NULL;
    
}

从数组第一个元素开始,用目标值target相减得出的值temp,再向右遍历数组找出与temp相等的值。用cur记录当前指针指向位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优雅人字拖

老板大气

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值