lc-go/solutions/2/q201/solution.go

22 lines
382 B
Go

// Package q201 implements a solution for https://leetcode.com/problems/bitwise-and-of-numbers-range/
package q201
func rangeBitwiseAnd(left int, right int) int {
ret := left & right
for i := ret + 1; i < right; {
ret &= i
if ret == 0 {
return 0
}
// Find first non-zero bit
t := 1
for i|t != i {
t <<= 1
}
i += t
}
return ret
}
var _ = rangeBitwiseAnd