放荡不羁的bug - C/CPP
type: channel
link: http://blog.bug-maker.com/tag/C-CPP/
items: 算法1:两数之和(C)

算法1:两数之和(C)
type: item
date: 2020-03-22T19:58:00+08:00
description: 给定一个整数数组 nums 和一个目标值 target，请你在该数组中找出和为目标值的那 两个 整数，并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是，你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]中规中矩的写法/** * Note: The returned array must be malloced, assume caller calls free(). */ int* twoSum(int* nums, int numsSize, int target, int* returnSize){ int *result = (int*)malloc(sizeof(int) * 2); result[0] = 0; result[0] = 0; for(int i=0;i<numsSize;i++){ for(int n=i+1;n<numsSize;n++){ if( nums[i] + nums[n] == target ){ result[0] = i; result[1] = n; *returnSize = 2; return result; } } } return 0; }