原有长度为 n+1、公差为1的等差升序数列;将数列输入到程序的数组时移除了一个元素,导致长度为 n 的升序数组可能不再连续,除非被移除的是第一个或最后一个元素。需要在数组不连续时,找出被移除的元素。
#include <iostream>
#include <vector>
using namespace std;
int find_missing(vector<int>& nums){
int left = 0, right = nums.size() - 1;
while(left<right){
int mid = left + (right - left) / 2;
if(nums[mid]==mid+ ___________){
_____________;
}else{
______________;
}
}
return ____________;
}
int main(){
int n;
cin >> n;
vector<int> nums(n);
for (int i=0;i<n;i++) cin>>nums[i];
int missing_number=find_missing(nums);
if (missing_number==_____________){
cout << "-1" << endl;
}else{
cout<<missing_number<<endl;
}
return 0;
}