Fork me on GitHub

leetcode之217. 存在重复元素

题目描述:

给定一个整数数组,判断是否存在重复元素。

如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。

示例 1:

1
2
3
> 输入: [1,2,3,1]
> 输出: true
>

示例 2:

1
2
3
> 输入: [1,2,3,4]
> 输出: false
>

示例 3:

1
2
3
> 输入: [1,1,1,3,3,4,3,2,4,2]
> 输出: true
>

解题思路:

Map

时间复杂度:$O(n)$, 空间复杂度:$O(1)$.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
map<int, int> map;

if(nums.size() <= 0) return false;

for(int i = 0; i < nums.size(); i++)
{
if(!map.count(nums[i]))
map.insert(pair<int, int>(nums[i], i));
else
return true;
}

return false;

}
};