博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 217 Contains Duplicate 数组中是否有重复的数字
阅读量:5026 次
发布时间:2019-06-12

本文共 2313 字,大约阅读时间需要 7 分钟。


Contains Duplicate
Total Accepted: 26477
Total Submissions: 73478

Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.

我的解决方案:很显然不是最优的,记录每个插入的状态,看起来也不是很简洁,但是对于方案二的优势是在对于长数组时候,第一个有重复的数字就退出了

class Solution {public:    bool containsDuplicate(vector
& nums) { set
result; set
::iterator itor ; for(int i = 0;i< nums.size();++i) { itor = result.find(nums[i]) ; if(itor != result.end()) { return true; } else { result.insert(nums[i]); } } return false; }};
非常简洁的解决方案,类似python 了,但是stl 中的set是基于平衡树的,而python中是hash树,所以python可能会高效一些
class Solution {public:    bool containsDuplicate(vector
& nums) { return nums.size() > set
(nums.begin(), nums.end()).size(); }};

python 的版本:

class Solution:    def containsDuplicate(self, nums):        return len(nums) > len(set(nums))

c++ 的hash版本:同类的hash code是相同的,这是一个非常重要的编程思想

class Solution {public:    bool containsDuplicate(vector
& nums) { unordered_set
hashset; for (int i = 0; i < nums.size(); ++i) { if (hashset.find(nums[i]) != hashset.end()) { return true; } else { hashset.insert(nums[i]); } } return false; }};

c++排序版本:

+2 votes942 viewsclass Solution {public:    bool containsDuplicate(vector
& nums) { int size=nums.size(); sort(nums.begin(),nums.end()); nums.erase(unique(nums.begin(),nums.end()),nums.end()); return (size!=nums.size()); }};+4 votesYour running time is 28ms, if not use unique, it will be 24ms:class Solution {public: bool containsDuplicate(std::vector
& nums) { std::sort(nums.begin(), nums.end()); for (int i = 1; i < nums.size(); ++i) if (nums[i] == nums[i - 1]) return true; return false; }};

转载于:https://www.cnblogs.com/wangyaning/p/7853943.html

你可能感兴趣的文章
设计模式のCompositePattern(组合模式)----结构模式
查看>>
二进制集合枚举子集
查看>>
磁盘管理
查看>>
SAS学习经验总结分享:篇二—input语句
查看>>
UIImage与UIColor互转
查看>>
RotateAnimation详解
查看>>
系统管理玩玩Windows Azure
查看>>
c#匿名方法
查看>>
如何判断链表是否有环
查看>>
【小程序】缓存
查看>>
ssh无密码登陆屌丝指南
查看>>
MySQL锁之三:MySQL的共享锁与排它锁编码演示
查看>>
docker常用命令详解
查看>>
jQuery技巧大放送
查看>>
字符串转换成JSON的三种方式
查看>>
Hive时间函数笔记
查看>>
clojure-emacs-autocomplete
查看>>
一个自己写的判断2个相同对象的属性值差异的工具类
查看>>
10 华电内部文档搜索系统 search03
查看>>
[HIHO1149]回文字符序列(dp)
查看>>