栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

LeetCode笔记: 存在重复元素,c/c++多方法实现

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode笔记: 存在重复元素,c/c++多方法实现

给你一个整数数组 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
 

提示:

1 <= nums.length <= 105
-109 <= nums[i] <= 109

C++:哈希表法
class Solution {
public:
    bool containsDuplicate(vector& nums) {
        unordered_set s;
        for(int x : nums)
        {
            if(s.find(x) != s.end())
            {
                return true;
            }
            s.insert(x);
        }
        return false;
    }
};
C++:排序法
class Solution {
public:
    bool containsDuplicate(vector& nums) {
        sort(nums.begin(),nums.end());
        for(int i=0;i 
 
C++:一行法,但空间较大 
class Solution {
public:
    bool containsDuplicate(vector& nums) {
        return unordered_set(nums.begin(),nums.end()).size() != nums.size();
        //因为set是一个自动有序,且无重复容器,如果有重复,那一定和原数组不一样长度
        //因为unordered_set是一个无序,但自动无重复的容器
    }
};

C:快速排序法
int cmp(const void *a,const void *b)
{
    return *(int*)a-*(int*)b;
}

bool containsDuplicate(int* nums, int numsSize){
    qsort(nums,numsSize,sizeof(int),cmp);//qsort是c语言中的快速排序,在stdlib.h
    for(int i=0;i 

C:哈希表法(希望未来能看懂的方法)
struct hashTable{
    int key;
    UT_hash_handle hh;
};

bool containsDuplicate(int* nums, int numsSize){
    struct hashTable* set = NULL;
    for(int i=0;ikey=nums[i];
            HASH_ADD_INT(set,key,temp);
        }
        else
        {
            return true;
        }
    }
    return false;
}

总结: 1.C++中哈希表的用法 2.C语言中快速排序qsort的用法 3.C++中容器的属性,map和set,unordered_和原版的区别 4.C语言中哈希表的用法
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000782.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号