2012-05-25 3 views
2

이 질문을 사용하여 배열에 수정 된 요소를 찾는 배열에 수정 된 요소를 찾는 방법 here는 XOR 속성

에서 시도되고있다?

예 : 수정 전 배열 A = {1,2,3,4,5,6} 수정 후 A = {1,2,3,7,5,6}. 여기 소자 (4)는 요소 (7)

XOR 재산권 내가 XOR 속성이 문제를 해결하기 위해 사용 된 것과 분명하지 오전이 문제

int getModifiedElement(int arr1[ ],int arr2[ ]) 
     { 
        int xor1 = arr1[0]; 
        int xor2 = arr2[0]; 
           for(int i=1;<i<arr1.length;i++) 
           { 
            xor1 = xor1^arr1[i]; 
            xor2 = xor2^arr2[i]; 
           } 
      return xor1^xor2; 
      } 

를 해결하기 위해 사용되는 몇 가지로 교체한다?

+0

이 해결책은 다른 문제입니다. 이 함수는 수정 된 요소가있는 경우 1을 반환하고 요소가 없으면 0을 반환합니다. 수정 된 값의 인덱스/값을 반환하지 않습니다. –

+0

{for (int i = 0; i

답변

2

xor은 결합 및 가환이므로 xor1 함께 배타적 논리합을 연산 어레이 (1)와 xor2 어레이 (2)로부터 그 모든 구성 요소가 변경되지 않은 요소가 모두 존재하는 경우, 그래서이되어 남아 x^x == 0 때문에 xor1^xor2 너무, 이들은 제거하고 old^newxor1^xor2이며 이는 어레이의 이전 요소에서 변경된 요소로 이어지는 수정입니다.

그러나 이전 요소가 무엇인지, 새로운 요소가 무엇인지에 대해서는 말하지 않으므로 이 아니기 때문에은 문제를 해결했습니다.

+0

4^7은 어떻게 유용합니까? – cnicutar

+0

@cnicutar 좋은 질문입니다. 코드 작성자에게 질문해야합니다. –

+1

간단한 테스트와 휴식을 가진 루프가 너무 주류이기 때문에 누군가 포스터를 만들어야합니다. – cnicutar