问题:
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum方法:
1 int main() 2 { 3 int nums[4] = {2,7,11,15}; 4 twoSum(nums,4,13); 5 return 0; 6 } 7 int twoSum(int nums[], int numsSize, int target){ 8 int i,j; 9 10 for(i = 0;i <= numsSize-1;i++) 11 { 12 for(j = i+1;j <= numsSize;j++) 13 { 14 if(nums[i] + nums[j] == target) 15 { 16 printf("%d,%d",i,j); 17 return 0; 18 } 19 } 20 } 21 }
能解决问题,但并不通过~int* twoSum(int* nums, int numsSize, int target, int* returnSize){ int *a = (int *)malloc(sizeof(int) * 2); int i, j; for (i = 0; i < numsSize - 1; i++) { for (j = i + 1; j < numsSize; j++) { if (nums[i] + nums[j] == target) { a[0] = i; a[1] = j; *returnSize = 2; // 什么作用,杵在这~~ } } } return a; //打印数组 }