バイナリ検索テンプレート整数

バイナリテンプレート

  • アルゴリズムのアイデア:閉区間に目標値を仮定し[l, r]、各時間間隔の長さが半分に低減される[l, r]対象を検索するために、すなわち、時間。

テンプレート

間隔に[l, mid]して[mid + 1, r]、それが操作を更新しているl = mid + 1r = mid、計算1ミッドなし。

while (l < r) {
    int mid = l + r >> 1;
    if (check(mid)) r = mid;
    else l = mid + 1;
    return l;
}

テンプレート2

間隔[l, mid - 1][mid, r]、それは更新があるとき、r = mid - 1またはl = mid途中の計算時に1追加します。

while (l < r) {
    int mid = l + r + 1>> 1;
    if (check(mid)) l = mid;
    else r = mid - 1;
    return l;
}

おすすめ

転載: www.cnblogs.com/clown9804/p/12449217.html