classSolution{public:intsubarrayBitwiseORs(vector<int>&arr){vector<int>s;intl=0;for(constinta:arr){constintr=s.size();s.push_back(a);// s[l..r) are values generated in previous iterationfor(inti=l;i<r;++i)if(s.back()!=(s[i]|a))s.push_back(s[i]|a);l=r;}returnunordered_set<int>(begin(s),end(s)).size();}};
classSolution{publicintsubarrayBitwiseORs(int[]arr){List<Integer>s=newArrayList<>();intl=0;for(finalinta:arr){finalintr=s.size();s.add(a);// s[l..r) are values generated in previous iterationfor(inti=l;i<r;++i)if(s.get(s.size()-1)!=(s.get(i)|a))s.add(s.get(i)|a);l=r;}returnnewHashSet<>(s).size();}}