LC 898. Bitwise ORs of Subarrays

Posted ethanhong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LC 898. Bitwise ORs of Subarrays相关的知识,希望对你有一定的参考价值。

 

 

We have an array A of non-negative integers.

For every (contiguous) subarray B = [A[i], A[i+1], ..., A[j]] (with i <= j), we take the bitwise OR of all the elements in B, obtaining a result A[i] | A[i+1] | ... | A[j].

Return the number of possible results.  (Results that occur more than once are only counted once in the final answer.)

Runtime: 652 ms
Memory Usage: 49.7 MB
class Solution {
public:
  int subarrayBitwiseORs(vector<int>& A) {
    unordered_set<int> s;
    set<int> t;
    for(int i : A) {
      set<int> r;
      r.insert(i);
      for(int j : t) r.insert(j | i);
      t = r;
      for(int j : t) s.insert(j);
    }
    return s.size();
  }
};

 

以上是关于LC 898. Bitwise ORs of Subarrays的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] 898. Bitwise ORs of Subarrays 子数组按位或操作

子序列的按位或 Bitwise ORs of Subarrays

201. Bitwise AND of Numbers Range

201. Bitwise AND of Numbers Range

201. Bitwise AND of Numbers Range

201. Bitwise AND of Numbers Range