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)

总结:

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

相关推荐
星轨初途9 分钟前
LeetCode 热题 100——day2 字母异位词分组
c++·算法·leetcode
龙仔7259 分钟前
RustDesk 完整笔记
运维·笔记·rust·远程工具·rustdesk
happyprince22 分钟前
篇1:整体观 · bitsandbytes项目全貌解读
人工智能·算法
HJX_072429 分钟前
嵌入式软件C语言八股文复习笔记5——编译、链接与底层硬核机制
c语言·开发语言·笔记
青梅橘子皮41 分钟前
STL---map/set... “家族“详解(从使用到底层)(1)
数据结构·算法
让学习成为一种生活方式1 小时前
DNA 甲基化综述(模式、调控与功能)--Current Opinion in Plant Biology
算法
摇滚侠1 小时前
《SpringBoot 3:入门与应用实战》第 15 章 生产级特性 监控指标 Metrics 阅读笔记
java·spring boot·笔记
-森屿安年-1 小时前
647. 回文子串
c++·算法·动态规划
噜~噜~噜~2 小时前
操作系统笔记-1.1.3 操作系统的特征
笔记·操作系统
皓月斯语2 小时前
P5736 【深基7.例2】质数筛
c++·算法·题解