Bagaimana jika menggunakan Bitmap untuk merekam, untuk setiap nbr
possible yang memungkinkan , apakah nilai tersebut digunakan atau tidak?
Untuk mencatat bahwa suatu nilai diambil gunakan SETBIT
:
SETBIT key [nbr] 1
Untuk menemukan nbr
free gratis gunakan BITPOS
:
BITPOS key 0
Untuk menghindari kondisi balapan, Anda harus memastikan get-and-set Anda atomik. [OP membahas ini dalam pertanyaan lanjutan.]
Ini akan membutuhkan memori yang sangat sedikit (8K byte untuk 65536 kemungkinan nilai). BITPOS
adalah O(n), tapi itu tidak mungkin menjadi masalah nyata.