두 개의 숫자 과 r 이 주어지고 l ≤ i에 대해 max ( i ⊕ j ) 를 찾고 싶다고 가정 해 봅시다 . .
순진한 알고리즘은 단순히 모든 가능한 쌍을 확인합니다. 예를 들어 루비에는 다음이 있습니다.
def max_xor(l, r)
max = 0
(l..r).each do |i|
(i..r).each do |j|
if (i ^ j > max)
max = i ^ j
end
end
end
max
end
나는 감지 우리가 차보다 더 잘 할 수있다. 이 문제에 대한 더 나은 알고리즘이 있습니까?
j
를 통해 실행i+1..r
과i
를 통해 실행l...r-1
정확하게 할 수 있습니다.