Given an integer 'k' and an sorted array A (can consist of both +ve/-ve nos), output 2 integers from A such that a-b=k.
void fun(vector<int> &a, int key)
{
int n = a.size();
if (n <= 1)
{
return;
}
key = abs(key);
int p = 1;
int q = 0;
while (q < p && p < n)
{
if (a[p] - a[q] == key)
{
cout << a[p] << " " << a[q] << endl;
return;
}
else if (a[p] - a[q] > key)
{
q++;
}
else
{
p++;
}
}
}
本文介绍了一种算法,该算法接受一个已排序的整数数组和一个整数k作为输入,并输出数组中两个元素a和b,使得a-b等于k。此算法适用于包含正数和负数的数组,通过维护两个指针p和q来高效查找符合条件的元素对。

被折叠的 条评论
为什么被折叠?



