LeetCode 217.存在重复元素【力扣——C/C++/Python三种编程语言题解】
LeetCode刷题篇,按照LeetCode专项突破的顺序进行,每道题通过C、C++、Python三种编程语言来解答。
数据结构专题:217.存在重复元素
给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。
示例 1:
输入:nums = [1,2,3,1]
输出:true
示例 2:
输入:nums = [1,2,3,4]
输出:false
示例 3:
输入:nums = [1,1,1,3,3,4,3,2,4,2]
输出:true
🏆C语言版答案
bool containsDuplicate(int* nums, int numsSize){
int i = 0;
int _callback(const void* val1, const void* val2)
{
return (*(int*)val1 - *(int*)val2);
}
/*调用库函数qsort,自己写排序可能会超时*/
qsort(nums, numsSize, sizeof(int), _callback);
for(i = 1; i < numsSize; i++)
{
if(nums[i - 1] == nums[i])
{
return true;
}
}
return false;
}
🏆C++版答案
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
set<int> s;
for(vector<int>::iterator it = nums.begin(); it != nums.end(); it++)
{
s.insert(*it);
}
if(s.size() < nums.size())
{
return true;
}
return false;
}
};
🏆Python版答案
class Solution(object):
def containsDuplicate(self, nums):
return (len(set(nums)) != len(nums))