[LeetCode] Single Number - JavaScript

이은빈 EUNBIN·2021년 5월 12일
0
post-thumbnail

👩🏻‍💻 문제

LeetCode #136 Single Number



👩🏻‍💻 풀이

var singleNumber = function(nums) {
    if(nums.length === 1) return nums[0];
    
    let result = [];
    nums.sort((a, b) => a - b);
    
    for(let i = 0; i < nums.length; i++) {
        if(nums[i] !== nums[i-1] && nums[i] !== nums[i+1]) {
            result.push(nums[i]);
        }
    }
    
    return result[0];
};
// 다른 분의 풀이
var singleNumber = function(nums) {
    var result = nums[0];
    for(var i = 1; i < nums.length; i++) {
        result ^= nums[i];
    }
    return result;
};

비트 XOR 할당 ( x ^= y )
: 양쪽 피연산자의 이진 표현을 XOR 연산한 후, 그 결과를 변수에 할당

var bar = 5;
bar ^= 2; // 7
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
// -----------------------------------
// 7: 00000000000000000000000000000111

자세한 설명

profile
Frontend Engineer & Value Creator

0개의 댓글