牛骨文教育服务平台(让学习变的简单)
博文笔记

返回两个求和等于给定值的数组下标--算法练习

创建时间:2017-10-20 投稿人: 浏览次数:256

题目:给定一个整数数组,返回两个数组元素的下标,使它们相加得到一个特定值。

提示:您可以假设每个输入都只有一个答案。

例子:

假设 nums = [2, 7, 11, 15], target = 9, 
因为 nums[0] + nums[1] = 2 + 7 = 9,
所以返回为:return [0, 1].

代码实现
 /**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target) {
    int i,j;
    printf("the numbersize is %d
",numsSize);
    int* array=malloc(sizeof(int)*2);
    for(i=0;i<numsSize;i++)
    {
        for(j=i+1;j<numsSize;j++)
        {
            if(target==(*(nums+i)+*(nums+j)))
            {
                printf("i is %d
",i);
                *array=i;
                *(array+1)=j;
                printf("the first number is %d",*array);
                return array;    
            }
        }
    }
    return 0;
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。