LeetCode: 1. Two Sum【C 解题】

来源:互联网 发布:水果编曲软件 编辑:程序博客网 时间:2024/05/22 06:31

难度等级: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;        }
0 0