给定一个整数数组 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]
解题思路:
先来仔细观察给我们的自定义函数的形参类型
*nums代表整形数组
numsSize代表整形数组的大小
target代表目标值
*returnSize代表开辟空间的返回值:2
由提示note:它说数组必须要开辟动态内存malloc,并且最终需要释放。因此得到这个看起来并不重要的*returnSize的含义。
在这道题目当中就是要利用nums的某个元素和某个元素之后的元素来相加,与target作比较,即由于nums是一个整形数组,由之前给我们的例子可得:将整形数组nums的每个元素从前往后依次遍历,从a[0]+a[1]判断,a[0]+a[2]判断,a[0]+a[3]判断,等等以此类推。从a[0]的相加结束后,开始从a[1]继续向后增加遍历,此时也以此类推,故此我们可以得知这样的彻底遍历,是很明显的暴力解法,通过这样的方法,我们可以使用两层for循环来解决我们的问题。
以上为解决代码。
补充:在之后还要return a并且要将
*returnSize = 0;返回值归为0,空间释放
return NULL;
这里的a[0]和a[1]代表着申请的两个内存空间
感谢大家的支持