インタビューの質問:
100万台の車を収容できる駐車場で、空いている駐車場を見つける必要があります。スロットがどこにあるかについての条件はありません。つまり、駐車場には複数の入り口がある可能性があり、入り口の近くにスロットを見つけることは重要ではありません。問題は、どのようなデータ構造を使用する必要があり、さまざまな操作の複雑さがどの程度かということでした。
私は、100 万ビットのビット配列を使用することを提案しました。0/1 は使用済み/空きスロットであり、空きスポットを見つけるために、質問は最初のセット ビットを見つけることに変換されます。何台の車があるかなどについて何も仮定しないでください。つまり、ビット配列は疎または密の可能性があります。
巨大なビットマップでセットビットを見つける最速の方法は何ですか? スキームとして、バイナリ検索+単語ごとの効率的なffs()を提案しました。