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