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

217. 存在重复元素(c++)——006,第1张

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					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5699397.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存