Bitwise ORs of Subarrays LeetCode solution in C++
1class Solution {2public:3int subarrayBitwiseORs(vector<int> &arr) {4vector<int> s;5int l = 0;6for (int a : arr) {7int r = s.size();8s.push_back(a);9for (int i = l; i < r; i++)10if (s.back() != (s[i] | a)) s.push_back(s[i] | a);11l = r;12}13return unordered_set<int>(begin(s), end(s)).size();14}15};