还是从数据结构开始做吧 慢慢来
题目链接
- stl中set容器能够自动去重(挖个坑,stl仔细的学一遍),将vector中的数据依次添加进set容器中,若添加后,set容器中的元素数量小于添加次数,即有重复数据。
- set容器的insert()函数 (借鉴自:c语言中文网 (是这样写吗???))
//以普通引用的方式传递 val 值
pairinsert (const_iterator position, const value_type& val);
//以右值引用的方式传递 val 值
pairinsert (const_iterator position, value_type&& val);
以上 2 种语法格式的 insert() 方法,返回的都是 pair 类型的值,其包含 2 个数据,一个迭代器和一个 bool 值:
- 当向 set 容器添加元素成功时,该迭代器指向 set 容器新添加的元素,bool 类型的值为 true;
- 如果添加失败,即证明原 set 容器中已存有相同的元素,此时返回的迭代器就指向容器中相同的此元素,同时 bool 类型的值为 false。
所以,当插入时,判断返回值的第二个数据,如果为false即存在相同元素
- 看的别人的代码:先排序,再依次比较相邻两个是否相等。(这么简单我为什么想用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 


