在数组中查找两个数, 使得他们的和正好等于输入的那个数字, 要求时间复杂度为O(n), 如果存在多对这样的数字只需要输出一对就可以.
void findarray(int data[], int n, int sum)
{int left = 0;
int right = n -1;
while(left < right)
{
if(data[left] + data[right] == sum)
{
printf("find it.\ndata[%d] + data[%d] = %d\n", left, right, sum);
break;
}
else if(data[left] + data[right] > sum)
{
right--;
}
else
left++;
}
if(left == right)
printf("It's not exist.\n");
return;
}