Description
Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.
Analysis
最主要的是两种思路。
- 排序,比较相邻元素,发现重复则返回
false
。 - 利用Hast Table、Set等STL库的函数进行查重。
此处我是用了Set。(集合是我从接触Pascal时就念念不忘的一个东西……)
Code
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
set<int> s;
pair<set<int>::iterator,bool> pr;
for (int n : nums){
pr = s.insert(n);
if(!pr.second)
return true;
}
return false;
}
};
Appendix
- Link: https://leetcode.com/problems/contains-duplicate/
- Run Time: 39ms