题目:
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 true。
如果数组中每个元素都不相同,则返回 false
思路分析:
第一种方法:
我们可以将数组排序查看相邻是否存在相同的元素
第二种方法:
使用unordered_map 将数组的值读入unordered_map 之后遍历pair.second的值是否大于1 或者判断unordered_map.size()和原数组的size大小 如果不一样则说明存在重复元素 相同则说明不存在
由此延伸,如果想要查找出现N次的数值 则需看pair.second的值是否等于N
代码展示:
第一种方法:
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
sort(nums.begin(), nums.end());
for (int i = 0;i < nums.size() - 1;i++) {
if (nums[i] == nums[i + 1]) {
return true;
}
}
return false;
}
};
第二种方法:
class Solution {
public:
bool conta