这就是题目。
由于Leetcode是接口OJ,所以只写实现函数。
先出代码,再分析
int* twoSum(int* num, int len,int target,int* retsize)
{
for (int i = 0; i < len-1; i++)
{
for (int j = i + 1; j < len; j++)
{
if (target==(num[i]+num[j]))
{
int* ret = (int*)malloc(sizeof(int) * 2);
ret[0] = i;
ret[1] = j;
*retsize=2;
return ret;
}
}
}
*retsize=0;
return NULL;
}
两个for循环遍历每一个两个数和的可能,不会重复,比较暴力。
找到之后使用指针动态开辟两个整型大小的空间。这两个空间分别储存,找到的元素的下标。由于是在堆上开辟的空间,且返回一个指针,就可以通过指针去找到这两个下标。