Post

leetcode(리트코드)217-Contains Duplicate

leetcode 217 - Contains Duplicate 문제입니다.

1. 문제

https://leetcode.com/problems/contains-duplicate/


2. Input , Output


3. 분류 및 난이도

Eazy 난이도 문제입니다.
https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-75-LeetCode-Questions-to-Save-Your-Time-OaM1orEU에서 추천한 문제입니다.


4. 문제 해석

  • 배열이 주어집니다. 최소 2번 이상 반복되는 요소가 있으면 True 없으면 False를 리턴합니다.

5. code

python

1
2
3
4
5
6
7
8
9
10
class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        dic = {}
        for i in range(len(nums)) : 
            temp = dic.get(nums[i],2)
            if temp != 2 :
                return True
            dic[nums[i]] = 1
        return False

c++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        unordered_map<int,bool> map;
        for(size_t i = 0;i<nums.size();++i)
        {
            if(map[nums[i]]==true)
                return true;
            map[nums[i]]=true;
        }
        return false;
    }
};


6. 결과 및 후기, 개선점

코드에 대한 설명이 필요하신 분은 댓글을 달아주세요.!!

c++ 86% python 99%

c++99% 8ms code

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        int n = nums.size();
        sort(nums.begin(), nums.end());
        for (int i = 0; i < n - 1; i++)
            if (nums[i] == nums[i+1])
                return true;
        return false;
    }
};

정렬하고 끝요소까지 같은 요소가 없으면 false를 리턴합니다.

This post is licensed under CC BY 4.0 by the author.