(寻找被移除的元素)问题,原有长度为n+1,公差为1的
(寻找被移除的元素)问题,原有长度为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 misssing_number=find_missing(nums);
if(missing_number==⑤){
cout<<"Sequence is consecutive"<<endl;
}else{
cout<<"Missing numbers is"<<missing_number<<endl;
}
return 0;
}④处应填( )
答案
A