[LeetCode] Single Number
본문 바로가기
코딩 테스트 연습/LeetCode

[LeetCode] Single Number

by 은돌1113 2024. 6. 20.

문제 설명

 

정수 배열 nums가 주어지면 모든 요소는 하나를 제외하고 두 번 나타납니다. 그 하나를 찾아보세요.

 

선형적인 런타임 복잡성을 갖는 솔루션을 구현해야 하며 일정한 추가 공간만 사용해야 합니다.


제한사항


입출력 예


입출력 예 #1

  • 입력 : nums = [2, 2, 1]
  • 출력 : 1

 

입출력 예 #2

  • 입력 : nums = [4, 1, 2, 1, 2]
  • 출력 : 4

 

입출력 예 #3

  • 입력 : nums = [1]
  • 출력 : 1

문제풀이

/**
 * @param {number[]} nums
 * @return {number}
 */
var singleNumber = function (nums) {
    let result = [];

    nums.forEach((num) => {
        if (!result.includes(num)) {
            result.push(num);
        } else {
            result = result.filter((item) => num !== item);
        }
    });

    return result;
};

singleNumber([2, 2, 1]);
singleNumber([4, 1, 2, 1, 2]);
singleNumber([1]);

 

/**
 * @param {number[]} nums
 * @return {number}
 */
var singleNumber = function (nums) {
    let obj = {};
    new Set(nums).forEach((key, i) => (obj[key] = 0));

    nums.forEach((num) => {
        obj[num]++;
    });

    const result = Number(Object.keys(obj).filter((key) => obj[key] === 1)[0]);

    return result;
};

singleNumber([2, 2, 1]);
singleNumber([4, 1, 2, 1, 2]);
singleNumber([1]);

링크

https://leetcode.com/problems/single-number/description/

'코딩 테스트 연습 > LeetCode' 카테고리의 다른 글

[LeetCode] Valid Parentheses  (0) 2024.07.02
[LeetCode] Design Browser History  (0) 2024.06.25
[LeetCode] Two Sum  (2) 2024.06.18

댓글