Làm thế nào về việc sử dụng Bitmap để ghi lại, cho mọi nbr
có thể , giá trị đó có được sử dụng hay không?
Để ghi lại rằng một giá trị được sử dụng, hãy sử dụng SETBIT
:
SETBIT key [nbr] 1
Để tìm một nbr
miễn phí sử dụng BITPOS
:
BITPOS key 0
Để tránh các điều kiện của cuộc đua, bạn sẽ muốn đảm bảo rằng thiết lập của bạn là nguyên tử. [OP giải quyết vấn đề này trong một câu hỏi tiếp theo.]
Điều này sẽ yêu cầu rất ít bộ nhớ (8K byte cho 65536 giá trị có thể). BITPOS
là O (n), nhưng đó không chắc là một vấn đề thực sự.