leetcode167两数之和c语言问题

代码如下:

  • Return an array of size *returnSize.
  • Note: The returned array must be malloced, assume caller calls free().
    /
    int
    twoSum(int* numbers, int numbersSize, int target, int* returnSize) {
    int i=0;
    int j=numbersSize-1;
    while(numbers[i]+numbers[j]!=target)
    {
    if(numbers[i]+numbers[j]>target)
    {
    j=j-1;
    }
    else
    {
    i=i+1;
    }
    }

    returnSize[0]=i+1;
    returnSize[1]=j+1;
    return returnSize;
    }

运行的时候出不来结果啊,请问这是为什么,我该怎么改呢?

0

1个回答

不考虑你程序本身的对错,仅仅从输入输出的角度来说,你返回的是结果数组的指针,而returnsize的作用是返回,告知调用者结果数组的大小

 /* Return an array of size *returnSize.
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* numbers, int numbersSize, int target, int * returnSize) {
    int i=0;
    int j=numbersSize-1;
    while(numbers[i]+numbers[j]!=target)
    {
        if(numbers[i]+numbers[j]>target)
        {
            j=j-1;
        }
        else
        {
            i=i+1;
        }
    }
    *returnSize = 2;
    int * r = new int[2];
    r[0]=i+1;
    r[1]=j+1;
    return r;
}

int _tmain(int argc, _TCHAR* argv[])
{
    int a[] = {2,7,15,9};
    int t = 9;
    int rs;
    int * r = twoSum(a, 4, t, &rs);
    for (int i = 0; i < rs; i++)
        printf("%d ", r[i]);
    return 0;
}

应该是这么一个逻辑

1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
leetcode167:两数之和Ⅱ-输入有序数组
思想: 定义下标start=0和end=len(numbers-1),将numbers[strat]和numbers[end]相加,相加的结果和target进行比较。若大于targe则end=end-1,若小于target则start=start-1,若相等则返回start+1和end+1。由于数组是有序数组,从数组头和尾元素相加开始判断和target的大小关系,这样可以快速找到目标元素 c...
两数之和 C语言
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 代码 先把代码贴上,这...
leetcode167: 两数之和 II - 输入有序数组
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 示例: 输入: numbers = [2, 7, 11, 15], targe...
LeetCode-1-两数之和-C语言
构造一个哈希表,依次遍历每个元素,遍历当前元素时,查找已存在的哈希表,目的值target-nums[i],如果找到,则直接返回当前和target-nums[i]对应的index即可。 #define LEN 1000 typedef struct hash_node{ int val; int i; struct hash_node *next; } Node; in...
两数之和c语言实现
int *twoSum(int *nums , int numsSize , int target , int *returnSize) { int i = 0 , j = 0; *returnSize = 2; int *a = (int *)malloc(sizeof(int) * 2); for(i = 0;i&lt;numsSize;i++) ...
两数之和问题(C语言解法)
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。算例:给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]/** * Note: The returned array must be malloced, assu...
1.C语言/两数之和
先上题目这里以在函数里做为前提:思路:题意是数组里找一个数与另一个数,最容易的做法即是两层遍历所有数,找出其中匹配的两个。int* twoSum(int* nums, int numsSize, int target) { int i,j; for(i=0;i&amp;lt;numsSize-1;i++){ for(j=i+1;j&amp;lt;numsSize;j++){ ...
leetcode-两数之和与两数之和||
两数之和|| 题目描述: 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 示例: 输入: numbers = [2, 7, 1...
LeetCode 两数之和C语言源码
//给定一个整数数组和一个目标值,找出数组中和为目标值的两个数 //你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用 //示例: //给定 nums = [2, 7, 11, 15], target = 9 //因为 nums[0] + nums[1] = 2 + 7 = 9 //所以返回 [0, 1]
【Leetcode1-两数之和 Two Sun】(C语言)
目录   两数之和 测试单元 函数解析 完整代码 复杂度分析 两数之和 给定一个整数数组和一个目标值,数组找出状语从句:中目标值为的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]...
LeetCode 第一题两数之和 C语言
  emmmm由于还在学数据结构与算法,不会哈希表所以就用暴力法解题了   代码 /** * Note: The returned array must be malloced, assume caller calls free(). */ int* twoSum(int* nums, int numsSize, int target) { int i,j; i...
力扣-两数之和-C语言
暴力法 int* twoSum(int* nums, int numsSize, int target) { static int a[2]={0}; for(int i = 0; i &lt; numsSize-1; i++) { for(int j=i+1; j &lt; numsSize; j++) { i...
LeetCode 第三题两数之和 C语言
  emmmmm,我用的应该是滑动窗口吧   int lengthOfLongestSubstring(char* s) { int max = 0 ; int num = 1; int i,j,k; char *STmp; char SSTmp[2] = {'\0','\0'}; if (*s == '\0') { return 0; //如果是空字符串就返回0 ...
力扣 1 两数之和 C语言
开始标记 第一次开始自己课下非作业的做一些编程题目,我的编程能力还是很弱的,我会慢慢一道题一道题的过,来慢慢达成。下面是我的代码,这里标记一下我新的开始。 代码 先把代码贴上,这是最笨的一个方法,这也是我刚看见这个问题的时候首先想到的解决方法但是,在我做这道题目的时候总是提交失败,前面有错误:SerializerHelper.inl:10:10: runtime error: load of nu...
Letcode---Java语言计算两数之和
先看下问题: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 这是一个...
两数之和 & 三数之和
给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。  注意事项 你可以假设只有一组答案。 样例 给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1
两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]class Solution { public: vector&amp;lt;int&amp;gt; twoSum(vec...
Leet_code---1两数之和---C语言版
题目描述:  给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。  你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]题干分析:  本题没有任何干扰项,每种输入答案唯一,最简单的思路便是直接双层循环,直至求出...
Leetcode两数之和数组——C
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum 题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], targ...
1、两数之和问题
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 我的思维就是:数组的二重遍历,但是同一索引不同被使用两次 代码: class Solution { ...
lintcode 56 两数之和
1 问题描述          给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。 样例 给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2]. 2 解题