刷题参考:https://blog.csdn.net/IBelieve2016/article/details/104544763
#include <iostream>
#include<vector>
using namespace std;
/*
问题描述:
给定一个有序数组和一个目标和,在数组中找到一对和等于给定目标的数组,
有就返回下标,没有就返回[-1,-1]。
例如:
s=[1,2,3,4,5,6,7,8],k=14,返回[5,7],也就是下标为5和下标为7的和为14:6+8=14。
题目很简单,初步了解一下双指针。
*/
void solution(vector<int> nums,int k,int &i,int &j){
while(nums[i]+nums[j]!=k&&i<=j){
if(nums[i]+nums[j]>k){
j--;
}else if(nums[i]+nums[j]<k){
i++;
}
}
if(i==j){
i=j=-1;
}
}
int main(){
vector<int>nums {1,2,3,4,5,6,7,8};
int i=0;
int j=nums.size()-1;
solution(nums,14,i,j);
cout<<i<<"-"<<j<<endl;
return 0;
}