Lowest Missing Bit O(n) | O(1)
If nums does not contain 1 we return 1.\n- If nums does not contain 2 we return 2.\n\t- Otherwise, we can form numbers [1, 4).\n- If nums does not contain 4 we 
- If `nums` does not contain `1` we return `1`.\n- If `nums` does not contain `2` we return `2`.\n\t- Otherwise, we can form numbers [1, 4).\n- If `nums` does not contain `4` we return `4`.\n\t- Otherwise, we can form numbers [1, 8).\n- If `nums` does not contain `8` we return `8`.\n\t- Otherwise, we can form numbers [1, 16).\n- ... and so on.\n\nWe can see that we need to find the lowest power of 2 that absent from the array.\n\n## O(1) Memory\nWe only store elements that are power of two (30 elements max).\n**C++**\n```cpp\nint minImpossibleOR(vector<int>& nums) {\n    unordered_set<int> m;\n    for (int n : nums)\n        if ((n & (n - 1)) == 0)\n            m.insert(n);\n    int res = 1;\n    while (m.count(res))\n        res <<= 1;\n    return res;\n}\n```
['C']