#include <iostream>
#include <vector>
int findDuplicate(const std::vector<int>& nums) {
int n = nums.size() - 1;
int left = 1;
int right = n;
while (left < right) {
int mid = left + (right - left) / 2;
int count = 0;
for (int num : nums) {
if (num <= mid) {
count++;
}
}
if (count > mid) {
right = mid;
} else {
left = mid + 1;
}
}
return left;
}
int main() {
std::vector<int> nums = {2, 3, 5, 4, 3, 2, 6, 7};
int result = findDuplicate(nums);
std::cout << "重复的数字是: " << result << std::endl;
return 0;
}