排序数组中找和的因子:
关键点:
有序,可用双指针法扫描。
代码:
#include<iostream>
using namespace std;
void printSumK(int arr[],int len,int k){
int begin=0;
int end=len-1;
while(begin<end){
while((arr[begin]+arr[end])<k){
begin++;
}
while((arr[begin]+arr[end])>k){
end--;
}
if(begin!=end){
cout<<arr[begin]<<" "<<arr[end]<<endl;
begin++;
end--;
}
}
}
int main(){
int arr[]={-8,-4,-3,0,2,4,5,8,9,10};
int len=10;
int k=10;
printSumK(arr,len,k);
return 0;
}