两数之和--练习题

简介: 两数之和--练习题

找个算法题练练手,顺便记录一下。


描述


给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。


(注:返回的数组下标从1开始算起,保证target一定可以由数组里面2个数字相加得到)


数据范围:2\leq len(numbers) \leq 10^52≤len(numbers)≤105,-10 \leq numbers_i \leq 10^9−10≤numbersi≤109,0 \leq target \leq 10^90≤target≤109


要求:空间复杂度 O(n)O(n),时间复杂度 O(nlogn)O(nlogn)


微信图片_20230117225025.png

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param numbers int整型一维数组 
 * @param numbersLen int numbers数组长度
 * @param target int整型 
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 */
int* twoSum(int* numbers, int numbersLen, int target, int* returnSize ) {
    // write code here
    int i=0,j=0;
    int num = 0;
    static int retAry[2];
    for(i=0; i<numbersLen-1; i++)
    {
        if(numbers[i] > target)
            continue;
        for(j=i+1; j<numbersLen; j++)
        {
            if(target == numbers[i]+numbers[j])
            {
                 retAry[0] = i+1;
                 retAry[1] = j+1;
                 *returnSize = 2;
                break;
            }              
        }
    }
    return retAry;
}





目录
相关文章
|
4月前
|
算法
LeetCode刷题---167. 两数之和 II - 输入有序数组(双指针-对撞指针)
LeetCode刷题---167. 两数之和 II - 输入有序数组(双指针-对撞指针)
|
4月前
|
存储 算法 Java
LeetCode算法题---两数相加(二)
LeetCode算法题---两数相加(二)
36 0
|
存储
每日一题(两数相加)
每日一题(两数相加)
|
存储
力扣---两数相加(c语言版)
力扣---两数相加(c语言版)
77 0
|
Java Python
leetcode每日一题.445:两数相加II
leetcode每日一题.445:两数相加II
77 0
|
存储 算法 索引
LeetCode每日1题--两数之和
LeetCode每日1题--两数之和
82 0
|
算法 索引
LeetCode每日1题--四数相加 II
LeetCode每日1题--四数相加 II
103 0
|
存储 算法 Go
【刷题】两数相加
【刷题】两数相加
100 0
【刷题】两数相加
|
存储
【刷题记录】2. 两数相加
【刷题记录】2. 两数相加
120 0
【刷题记录】2. 两数相加
|
Java
LeetCode刷题记录(一):两数相加
LeetCode刷题记录(一):两数相加
121 0