作者:
JIWP (JIWP)
2025-07-31 22:08:47898. Bitwise ORs of Subarrays
思路 :
用三個map : rec、prev、cur
rec記錄所有出現過的or值
prev紀錄0~i-1所有可能的or值
cur紀錄prev裡的or值跟nums[i]or後的結果以及nums[i]自己本身
最後回傳rec裡有多少個or值就好
golang code :
func subarrayBitwiseORs(nums []int) int {
prev := make(map[int]bool)
rec := make(map[int]bool)
for _, val := range nums {
cur := make(map[int]bool)
cur[val], rec[val] = true, true
for k := range prev {
num := k | val
cur[num] = true
rec[num] = true
}
prev = cur
}
return len(rec)
}