难度等级:Easy
关键字: Array, Hash Table
相似问题: (M)3Sum, (M) 4Sum, (M) Two II-Input array is sorted, (E) Two Sum III-Data structure design
题目要求:
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution.
样例:
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
解题思路:
由于题目说可以假设只有一个解,所有一旦找到一个解就立即返回。我们可以遍历寻找,假设第 i (0 <= i < n)为解的第一个值, 则寻找满足 i + j = target 的值, 其中 i < j < n
解题:
int* twoSum(int* nums, int numsSize, int target) {
int *a = (int *) malloc (sizeof(int)*2);
int i, j;
for(i = 0; i < numsSize; i++)
for(j = i + 1; j < numsSize; j++)
if(nums[j] == target - nums[i])
{
a[0] = i;
a[1] = j;
return a;
}
return 0;
}