アレイ(C)の中で最大の空きスペースを探していますか?

私は次のような文字列を持っています:
1 0 0 1 1 1 0 0 0 1 1 0 1

配列に最適な穴を見つけるための検索アルゴリズムを開発する必要があります。私は線形検索を使用することはできません。
(問題は…私はそれを行う他の方法は考えられません)。

基本的には、私のプログラムへの入力が3バイトであれば、配列内に3つの0を見つけ出し、その場所を使ってデータを挿入する関数が必要です。

ベストアンサー

配列があなたに与えられた場合(作成していない場合)、必要な穴のサイズを知っているので、 0
部屋があるかどうかを確認します。

If you’re trying to find a hole for 3 bytes and a[0] ==
1
then you know it won’t fit in a[0] ->
a[2]
. Skip ahead to a[3] and see if that’s a
0

これは、リストスタート -
フィニッシュを通過するブルートフォースのアプローチよりもわずかに優れていますが、それが優れています。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です