在递增有序正整数顺序表中找出和为k的一对数 C++
时间: 2024-02-25 10:57:12 浏览: 164
好的,您可以使用双指针法来解决这个问题。具体步骤如下:
1. 定义两个指针i和j,分别指向正整数顺序表的开头和结尾。
2. 循环判断i和j的值之和是否等于k,如果等于k,则输出这两个数并返回;如果小于k,则将i指针右移一位,如果大于k,则将j指针左移一位。
3. 如果i和j相遇,则表明没有找到符合条件的数对,输出“not found”并返回。
下面是C++代码示例:
```c++
void findPair(int arr[], int n, int k)
{
int i = 0, j = n - 1;
while (i < j) {
int sum = arr[i] + arr[j];
if (sum == k) {
cout << arr[i] << " " << arr[j] << endl;
return;
}
else if (sum < k)
i++;
else
j--;
}
cout << "not found" << endl;
}
```
其中,arr[]表示正整数顺序表,n表示表中元素个数,k表示需要找出的和。
阅读全文