Che ne dici di usare le bitmap per registrare, per ogni possibile nbr
, indipendentemente dal fatto che quel valore venga utilizzato o meno?
Per registrare che viene preso un valore, utilizzare SETBIT
:
SETBIT key [nbr] 1
Per trovare un nbr
gratuito usa BITPOS
:
BITPOS key 0
Per evitare condizioni di gara, ti consigliamo di assicurarti che il tuo get-and-set sia atomico. [L'OP affronta questo in una domanda di follow-up.]
Ciò richiederà pochissima memoria (8 K byte per 65536 valori possibili). BITPOS
è O(n), ma è improbabile che sia un problema reale.