您的位置:首页 > 大数据 > 人工智能

LeetCode 217 Contains Duplicate

2016-03-30 17:49 399 查看
题目: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.

判断一个数组里是否存在至少一个数出现了至少2次。

思路是先排序,然后比较大小,经过排序后有相同的数肯定是在一块,所以比较相邻数字是否相等即可。 

class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
int sz = nums.size();
sort(nums.begin(), nums.end());
for (int i = 0; i < sz-1; i++)
{
if (nums[i] == nums[i + 1])
return true;
}
return false;
}
};

搜索了一下网上的答案,发现还可以用map解

bool containsDuplicate(vector<int>& nums) {
map<int, int> int_map;
for (int i = 0; i<nums.size(); i++) {
if (int_map.count(nums[i])){
return true;
}
int_map.insert(pair<int, int>(nums[i], i));
}
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: