Skip to content

Commit c414599

Browse files
committed
898 accepted. 420ms
1 parent a9d345e commit c414599

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
package 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
}

0 commit comments

Comments
 (0)