나는 n 개의 정수 목록을 받았으며이 정수는 1에서 n까지입니다. 리스트에는 중복이 없습니다. 그러나 정수 중 하나가 목록에 없습니다. 누락 된 정수를 찾아야합니다. 시퀀스에서 누락 된 번호 찾기
Example: If n=8
I/P [7,2,6,5,3,1,8]
O/P 4
I am using a simple concept to find the missing number which is to get the
sum of numbers
total = n*(n+1)/2
And then Subtract all the numbers from sum.
그러나 숫자의 합이 최대 허용 정수 넘어서는 경우 위의 방법이 실패합니다.
그래서 두 번째 용액을 검색하고 다음 나는 방법을 발견 :
1) XOR all the elements present in arr[], let the result of XOR be R1.
2) XOR all numbers from 1 to n, let XOR be R2.
3) XOR of R1 and R2 gives the missing number.
방법이 방법은 작동 .. R1의 XOR 인 방법 및 R2는 전술 한 경우에 누락 정수 발견 ? 모든
약력을 강요하는 것은 어떻습니까? 배열을 정렬하고'[n - (n-1)] '이 1이 아닌 두 개의 인덱스를 확인하십시오. – Renan
왜 허용되는 최대 정수가 있습니까? – VoronoiPotato
@ VoronoiPotato : 시퀀스에 10 억 개의 숫자가 있고 32 비트 정수로 제한되는 경우 어떻게해야합니까? –