3 条题解

  • 1
    @ 2024-12-8 13:34:17

    比较简单的二分

    思路

    特判+二分

    代码

    #include "guess.h"
    #include <iostream>
    using namespace std;
    
    int guess(int n) {
        int low = 1;
        int high = n;
        while (true) {
            if (low == high) return low;
            int mid = (low + high)/2;
            int result = ask(mid);
            if (result == 0) return mid;
            else if (result < 0) high = mid-1;
            else low = mid+1;
        }
    }
    

    复杂度

    时间复杂度:

    O(log2n)O(log_2 n)

    空间复杂度:

    O(n)O(n)

    信息

    ID
    34
    时间
    1000ms
    内存
    512MiB
    难度
    7
    标签
    递交数
    354
    已通过
    81
    上传者