例如:
Input: [1,2,3,1]
Output: true (有重复元素1)
方法1: 对原数组进行排序,再遍历数组,比较相邻两个元素是否相等。time: O(nlogn), space:O(1)
方法2:创建一个哈希表,遍历数组统计每个元素出现次数。time: O(n), space:O(n)
下面是方法1的解:
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
if (nums.size() <= 1) {
return false;
}
sort(nums.begin(), nums.end());
for (int i = 1; i < nums.size(); ++i) {
if (nums[i - 1] == nums[i]) {
return true;
}
}
return false;
}
};