본문 바로가기
Algorithm/LeetCode

[002]Single Number

by BAYABA 2020. 5. 10.

 

문제: https://leetcode.com/explore/challenge/card/30-day-leetcoding-challenge/528/week-1/3283/


숫자 배열에서 하나의 값만 1개 들어있고, 나머지 값들은 2개씩 들어있을 때 1개만 있는 값을 찾는 문제.

 

std::map을 생성한 뒤 배열을 순회하면서, map에 이미 있는 숫자면 pop, 없는 숫자면 insert.

 

그렇게 순회하고 나면 map에는 1개인 값만 남게 됩니다.

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        map<int,int> numbers;
        
        int answer;
        for (int num : nums)
        {
            if (numbers.find(num) == numbers.end())
                numbers[num] = 1;
            else
                numbers.erase(num);
        }
        
        for(auto info : numbers)
            answer = info.first;
        
        return answer;
    }
};

 

'Algorithm > LeetCode' 카테고리의 다른 글

[006]Valid Palindrome  (0) 2020.08.03
[005]Sort Characters By Frequency  (0) 2020.05.26
[004]Jewels and Stones  (0) 2020.05.17
[003]First Bad Version  (0) 2020.05.16
[001]Subarray Sum Equals K  (0) 2020.05.10