정수 배열이 제공됩니다. 이 배열에서 3 개의 고유 번호는 짝수로 발생합니다. 나머지는 한 번만 발생합니다. XOR 논리를 사용하여 그 숫자를 찾는 방법이 있습니까? 또한 주어진 배열은 n + 3 요소로 구성됩니다. 배열의 모든 요소는 범위 1에서 n까지입니다. 예 용발생 수가 짝수 인 세 개의 고유 번호를 찾으려면
: 도착 = {4, 2, 4, 5, 2, 3, 1, 5} 여기서 n = 짝수 발생 5 개 여기 고유 번호 2, 4, 5
I했던 된 범위 번호 1 ~ n의 xor와 함께 배열 번호의 XOR. 그 숫자는 마지막 세 고유 번호의 XOR에 대한 답입니다. 두 개의 숫자가있는 경우 설정된 비트를 확인하고 숫자를 찾습니다. 그러나 3 개의 숫자는 어떨까요? 이것을 할 수있는 방법이 있습니까?
해시를 사용하여 문제를 해결할 수 있습니다. 문제를 해결하기 위해 XOR 방식을 찾고 있습니다.
때문에이 Xor는 당신을 도울 수
[이 비슷한 대답을 사용할 수 있다고 생각합니다.] (http://stackoverflow.com/a/3010534/1009831). 좋은 설명과 함께 선형 시간 O (1) 공간 (일정한 배열로) 알고리즘을 제공합니다. –
예 그 접근 방식을 약간 수정하면 효과가 있다고 생각합니다. 시도해 보겠습니다. – rocker