大家好,欢迎来到IT知识分享网。
1./给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target
// 的那 两个 整数,并返回它们的数组下标。
//你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。
//示例 1:
//输入:nums = [2, 7, 11, 15], target = 9
//输出:[0, 1]
//解释:因为 nums[0] + nums[1] == 9 ,返回[0, 1] 。
//示例 2:
//输入:nums = [3, 2, 4], target = 6
//输出:[1, 2]
//示例 3:
//输入:nums = [3, 3], target = 6
//输出:[0, 1]
2.我们判断相邻的数字与target的是否相等,如果相等ret[0]=i,ret[1]=j return ret, *returnSize=2;反之没有一个相等则*returnSize=0,返回NULL。(注意:ret要一个二个int的空间)
#include<stdio.h> #include<stdlib.h> int* twoSum(int* nums, int numsSize, int target, int* returnSize) { int j = 0;; for (int i = 0; i < numsSize; i++) { for (int j = i + 1; j < numsSize; j++) { if (nums[i] + nums[j] == target) { int* ret = malloc(sizeof(int) * 2); ret[0] = i; ret[1] = j; *returnSize = 2; return ret; } } } *returnSize = 0; return NULL; } int main() { int nums[10] = {"2,7,11,15"}; int numsSize = strlen(nums); int target = 0; scanf_s("%d", &target); int returnSize = 0; int*dev=twoSum(nums, numsSize, target, &returnSize); for (int i = 0; i < returnSize; i++) { printf("%d ", dev[i]); } return 0; }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/137646.html