leetcode(1) - Two Sum

    xiaoxiao2023-03-25  5

    给定一个整数数组,找出其中两个数满足相加等于你指定的目标数字。

    要求:这个函数twoSum必须要返回能够相加等于目标数字的两个数的索引,且index1必须要小于index2。请注意一点,你返回的结果(包括index1和index2)都不是基于0开始的。

    你可以假设每一个输入肯定只有一个结果。

    举例:

    输入:numbers={2, 7, 11, 15}, target = 9

    输出:index1 = 1, index2 = 2(不是基于0开始的)

    ==== 自己的解法 , 完全没有考虑效率, 时间复杂度是O(n的平方) ====

    /** * Note: The returned array must be malloced, assume caller calls free(). */ int* twoSum(int* nums, int numsSize, int target) { int *ret = (int *)malloc(2*sizeof(int)); for (int i = 0; i <numsSize; i++ ) { for (int j = i+1 ; j < numsSize; j++) { if ((nums[i] + nums[j]) == target) { ret[0] = i; ret[1] = j; return ret; } } } return NULL; }

    ==== 自己的解法  ====

    ==== 下面考虑用hash提高效率  ====

    转载请注明原文地址: https://ju.6miu.com/read-1203794.html
    最新回复(0)