これは、Steven Skiena の「アルゴリズム設計マニュアル」第 2 版、p 143 の宿題です。
からwhere
{A1,A2,...An}に引き出された、ソートされた別個の整数のシーケンスが与えられたとします。に存在しない整数を見つけるアルゴリズムを与えてください。完全なクレジットを得るには、そのような最小の整数を見つけます。1mn < mO(lgN)<= mA
ソートされたシーケンスであり、O(lgN)どちらも二分探索アルゴリズムを示唆しています。私が考えることができる唯一の方法は、 から までの数字を実行し1、m各数字について二分探索を行って、順番に存在するかどうかを確認することAです。しかし、それはO(mlgN)そうではありませんO(lgN)。