← [ BACK_TO_NOTES ]

Bitmap / Bitset

Representing sets with bits and basic operations

#algorithm #concept #growing #bitset

[!info] related notes 算法面试题型 MOC 异或与位运算技巧

Bitmap / Bitset

Idea

  • Use 1 bit per value to represent existence (1 = present, 0 = absent).
  • Very space-efficient.
  • Main constraint: values must be within a continuous, not-too-large integer range.

Memory

  • Range size = N values
  • Space ~ N bits = N / 8 bytes

Operations

  • add: set bit to 1
  • remove: set bit to 0
  • toggle: flip bit
  • contains: test bit

Java Implementation

public class Bitset {
    private final int[] set;

    public Bitset(int n) {
        // represent [0..n]
        set = new int[(n + 31) / 32];
    }

    public void add(int num) {
        set[num / 32] |= 1 << (num % 32);
    }

    public void remove(int num) {
        set[num / 32] &= ~(1 << (num % 32));
    }

    public void toggle(int num) {
        set[num / 32] ^= 1 << (num % 32);
    }

    public boolean contains(int num) {
        return ((set[num / 32] >>> (num % 32)) & 1) == 1;
    }
}
创建于 2026/3/16 更新于 2026/7/15
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本