LC - Single Number

goody·2021년 2월 22일
0

알고리즘

목록 보기
48/90

문제

Given a non-empty array of integers nums, every element appears twice except for one. Find that single one.


예시

Example 1:

Input: nums = [2,2,1]
Output: 1
Example 2:

Example 2:

Input: nums = [4,1,2,1,2]
Output: 4
Example 3:

Example 3:

Input: nums = [1]
Output: 1


## 풀이 * 배열 내에서 짝이 없는 원소를 찾아내는 문제이다. * 주어진 배열을 돌면서 원소를 뒤에서 하나씩 제거한다. * 제거한 원소를 다른 배열에 저장해놓는다. * 제거한 원소가 아직 삭제되지 않은 원소들이 있는 배열과, 이미 제거된 원소들이 있는 배열 두 곳 모두에서 존재하지 않는 경우를 찾는다.

코드

let singleNumber = function(nums) {
    const numsLength = nums.length;
    const numsCopy = nums;
    const pastNums = [];

    for(let i = 0; i <= numsLength; i++) {
        const currNum = numsCopy.pop();
        if(numsCopy.includes(currNum) || pastNums.includes(currNum)) {
            pastNums.push(currNum);
            continue;
        } else {
            return currNum;
        }
    }
};

0개의 댓글