비어 있지 않은 정수 배열이 주어지면 각 요소는 한 번만 나타나는 것을 제외하고 두 번 나타납니다. 한 번만 나타나는 요소를 찾습니다. 【리코드 핫100】

가장 인기 있는 질문 100의 질문 136:

먼저 코드를 붙여넣습니다.

class Solution {
    public int singleNumber(int[] nums) {
        //异或
        int ans = 0;
        for(int i = 0; i < nums.length;i++){
            ans = ans ^ nums[i];
        }
        return ans;

    }
}

문제 해결 아이디어:

이 문제는 XOR을 사용하여 해결해야 합니다. XOR 알고리즘은 다음을 따릅니다.

따라서 배열의 한 요소만 단일이고 다른 요소가 두 번 나타나는 경우 XOR 연산의 가환 법칙 및 연관 비율을 따릅니다. 예: 1 ^ 2 ^ 2 ^ 3 ^ 3 ^ 4 ^ 4 = 1; 2^1^3^2^3 = 1;

따라서 배열을 한 번만 탐색하고 매번 이 수를 XOR하면 솔루션을 완료할 수 있습니다.

추천

출처blog.csdn.net/weixin_56960711/article/details/123340496