#402. CSP2023PJ-19
CSP2023PJ-19
- (完善程序)
(寻找被移除的元素)问题:原有长度为 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 << "Sequence is consecutive" << endl;
}else{
cout << "Missing number is " << missing_number << endl;
}
return 0;
}
① 处应填( )。
{{ select(1) }}
- 1
- nums[0]
- right
- left
② 处应填( )。
{{ select(2) }}
- left = mid + 1
- right = mid - 1
- right = mid
- left = mid
③ 处应填( )。
{{ select(3) }}
- left = mid + 1
- right = mid - 1
- right = mid
- left = mid
④ 处应填( )。
{{ select(4) }}
- left + nums[0]
- right + nums[0]
- mid + nums[0]
- right + 1
⑤ 处应填( )。
{{ select(5) }}
- nums[0] + n
- nums[0] + n - 1
- nums[0] + n + 1
- nums[n - 1]
相关
在下列比赛中: