两数之和
一.题目描述
二.题目分析
有一个数组nums,里面有numsSize个数据,在数组中寻找两个数据相加等于target的两个书记下标,并进行返回。数组里面有且仅有一个满足这样条件的数。
通过函数接口,需要返回一个指针,指向那两个下标的数字,同时,returnSize为发返回数据个数
三.解题思路分析
一个个数据遍历,两两数据相加判断是否等于target
四代码实现
int* twoSum(int* nums, int numsSize, int target, int* returnSize)
{
int i=0;
int j=0;
//循环遍历
for(i=0;i<numsSize;i++)
{
for(j=i+1;j<numsSize;j++)
{
if(nums[i]+nums[j]==target)
{
//找到了,返回下标
//动态开辟,没有为a数组分配空间,未考虑到函数内数组是临时变量无法返回的问题
int *pa=(int*)malloc(2*sizeof(int));
*returnSize=2;
pa[0]=i;
pa[1]=j;
return pa;
}
}
}
return NULL;
}
五.分析
时间复杂度为O(n*n),空间复杂度为O(1)