#include #include #include #include

using namespace std;

int main() { int n; cin >> n;

vector<int> sequence(n);
for (int i = 0; i < n; i++) {
    cin >> sequence[i];
}

int m;
cin >> m;

vector<int> queries(m);
for (int i = 0; i < m; i++) {
    cin >> queries[i];
}

for (int i = 0; i < m; i++) {
    int target = queries[i];
    int left = 0;
    int right = n - 1;
    int closest = INT_MAX;
    
    while (left <= right) {
        int mid = left + (right - left) / 2;
        
        if (sequence[mid] == target) {
            closest = target;
            break;
        } else if (sequence[mid] < target) {
            closest = sequence[mid];
            left = mid + 1;
        } else {
            closest = sequence[mid];
            right = mid - 1;
        }
    }
    
    cout << closest << endl;
}

return 0;

}

C++ 查找非降序列中与给定值最接近的元素

原文地址: https://www.cveoy.top/t/topic/quJE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录