leetcode做题笔记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++解法

cpp 复制代码
class Solution
{
public:
    bool containsDuplicate(vector<int> &nums)
    {
        return (std::set<int>(nums.begin(), nums.end()).size() != nums.size());
    }
};

分析:

直接用集合将重复数字剔除,最后比较两个数组之间的长度,若不等则返回false

思路二:排序后遍历

c++解法

cpp 复制代码
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;
    }
};

分析:

将数组排序后只需查看相邻的两个数是否相等即可判断,时间复杂度为O(nlogn)

总结:

本题考察对排序,集合的应用,利用相关性质即可解决

相关推荐
t1987512812 分钟前
火电机组热经济性分析MATLAB程序实现
人工智能·算法·matlab
wgego17 分钟前
Polar靶场web 随写笔记
笔记·web
cuckooman20 分钟前
obsidian如何删除已不再使用的属性?
笔记·obsidian
Hello娃的21 分钟前
【半导体】肖特基接触AND欧姆接触
人工智能·算法
橘颂TA21 分钟前
【剑斩OFFER】算法的暴力美学——交易逆序对的总数
数据结构·算法·leetcode
xiyuping2424 分钟前
强化学习之——moutaincar
算法·机器学习
中屹指纹浏览器25 分钟前
指纹浏览器与代理 IP 的跨协议栈协同优化技术
服务器·网络·经验分享·笔记·媒体
小画家~26 分钟前
第三十七:类型断言
开发语言·c++·算法·golang
九年义务漏网鲨鱼30 分钟前
【大模型微调】QLoRA微调原理及实战
深度学习·算法·大模型·智能体
2401_8414956430 分钟前
【LeetCode刷题】合并区间
数据结构·python·算法·leetcode·合并·遍历·排序