File tree Expand file tree Collapse file tree 1 file changed +15
-15
lines changed
Algorithms/0898.bitwise-ors-of-subarrays Expand file tree Collapse file tree 1 file changed +15
-15
lines changed Original file line number Diff line number Diff line change 11package problem0898
22
3- func subarrayBitwiseORs (A []int ) int {
4- size := len (A )
5- res := make (map [int ]bool , size )
6- var cur map [int ]bool
7-
8- for _ , n := range A {
9- cur2 := make (map [int ]bool , 30 )
10- cur2 [n ] = true
11- for k := range cur {
12- cur2 [n | k ] = true
13- }
14- cur = cur2
15- for k := range cur {
16- res [k ] = true
3+ func subarrayBitwiseORs (a []int ) int {
4+ unique := make (map [int ]bool , len (a ))
5+ var s0 , s1 []int
6+ for _ , x := range a {
7+ tmp := make (map [int ]bool , len (s0 ))
8+ tmp [x ], unique [x ] = true , true
9+ s1 = append (s1 , x )
10+ for _ , y := range s0 {
11+ y |= x
12+ if ! tmp [y ] {
13+ tmp [y ], unique [y ] = true , true
14+ s1 = append (s1 , y )
15+ }
1716 }
17+ s0 , s1 = s1 , s0 [:0 ]
1818 }
19- return len (res )
19+ return len (unique )
2020}
You can’t perform that action at this time.
0 commit comments