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

217. 存在重复元素(c++)——006

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

217. 存在重复元素(c++)——006

还是从数据结构开始做吧 慢慢来
题目链接

思路:
  1. stl中set容器能够自动去重(挖个坑,stl仔细的学一遍),将vector中的数据依次添加进set容器中,若添加后,set容器中的元素数量小于添加次数,即有重复数据。
  2. set容器的insert()函数 (借鉴自:c语言中文网 (是这样写吗???))

//以普通引用的方式传递 val 值
pair insert (const_iterator position, const value_type& val);
//以右值引用的方式传递 val 值
pair insert (const_iterator position, value_type&& val);

以上 2 种语法格式的 insert() 方法,返回的都是 pair 类型的值,其包含 2 个数据,一个迭代器和一个 bool 值:

  • 当向 set 容器添加元素成功时,该迭代器指向 set 容器新添加的元素,bool 类型的值为 true;
  • 如果添加失败,即证明原 set 容器中已存有相同的元素,此时返回的迭代器就指向容器中相同的此元素,同时 bool 类型的值为 false。
    所以,当插入时,判断返回值的第二个数据,如果为false即存在相同元素
  1. 看的别人的代码:先排序,再依次比较相邻两个是否相等。(这么简单我为什么想用set……)
代码:
class Solution {
public:
    bool containsDuplicate(vector& nums) {
        set mySet;
        for(int i=0;i 
class Solution {
public:
    bool containsDuplicate(vector& nums) {
        set mySet;
        for(int i=0;i 
class Solution {
public:
    bool containsDuplicate(vector& nums) {
        int n=nums.size();
        sort(nums.begin(),nums.end());
        for(int i=0;i
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/699271.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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