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)

总结:

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

相关推荐
小O的算法实验室1 分钟前
2026年AST,复杂边界环境下多无人机协同搜索攻击+分形智能自组织任务规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
测绘第一深情1 分钟前
租用GPU云服务器进行深度学习(AutoDL,超保姆级,适用新手)
数据结构·人工智能·经验分享·python·深度学习·算法·计算机视觉
北顾笙9805 分钟前
day34-数据结构力扣
数据结构·算法·leetcode
YaBingSec6 分钟前
玄机网络安全靶场:JBoss 5.x_6.x 反序列化漏洞(CVE-2017-12149)
android·网络·笔记·安全·web安全·ssh
khalil10208 分钟前
代码随想录算法训练营Day-36动态规划04 | 1049. 最后一块石头的重量 II、494. 目标和、474.一和零
算法·动态规划
码农爱学习9 分钟前
用cJson的例子,来理解二级指针
算法
做cv的小昊14 分钟前
【TJU】研究生应用统计学课程笔记(5)——第二章 参数估计(2.3 C-R不等式)
c语言·笔记·线性代数·机器学习·数学建模·r语言·概率论
自我意识的多元宇宙16 分钟前
【数据结构】二叉排序树
数据结构·算法
量子炒饭大师18 分钟前
【优化算法:双指针算法刷题宝典】—— 盛最多水的容器
c++·算法
IT猿手20 分钟前
多无人机动态避障路径规划研究:基于壁虎优化算法GJA的多无人机动态避障路径规划研究(可以自定义无人机数量及起始点),MATLAB代码
算法·matlab·无人机