思路:
利用左右指针实现
首先,这个数组是有序的,这是个重要的条件,如果没有这个条件,后面的办法根本不行
那么这个数组最小值是第1,2个元素的和,最大值是末尾两个元素的和
利用左右指针指向的值求和判断指针到底是左移还是右移
void getTargetElemts(int* arr,int len,int target){ int left = 0; int right = len - 1; do{ int sum = arr[left] + arr[right]; if(sum > target){ right--; } else if(sum < target){ left++; } else{ cout<< left<<","<<right<<endl; cout<< arr[left]<<","<<arr[right]<<endl; return; } }while (left < right ); }