# **Leetcode筆記(Contains Duplicate)**
:::info
:information_source: 題目 : Contains Duplicate, 類型 : arrays , 等級 : easy
日期 : 2023/02/17,2023/05/03,2023/06/26,2024/10/04
:::
### 嘗試
記憶體好像有點差
```python
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
record = {}
for i, val in enumerate(nums):
if val in record:
return True
record[val] = i
return False
```
2023/05/03
```python
# 其實是看了優化後才用set
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
record = set()
for n in nums:
if n in record:
return True
record.add(n)
return False
```
2023/06/26
如果有要記錄重複,那就用set
```python
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
record = set()
for c in nums:
if c in record:
return True
record.add(c)
return False
```
---
### **優化**
建立set來解,時間複雜度O(n),空間複雜度O(n)
如果用sort來解這題(把list依大小先排好),時間複雜度O(nlogn),空間複雜度O(1),因為不用用到多餘空間
```python
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
record = set()
for i, val in enumerate(nums):
if val in record:
return True
record.add(val)
return False
```
---
**:warning: 錯誤語法**
:::warning
:::
**:thumbsup:學習**
:::success
set集合不會包含重複的資料
不用用到index
記得可以if val in set:

:::
**思路**

**講解連結**
https://www.youtube.com/watch?v=3OamzN90kPg
Provided by. NeetCode
###### tags: `arrays` `easy` `leetcode`