LeetCode217.python实现: 存在重复元素问题☆
2019-03-13 20:12
274 查看
目录
一、问题
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。
示例 1:
[code]输入: [1,2,3,1] 输出: true
示例 2:
[code]输入: [1,2,3,4] 输出: false
示例 3:
[code]输入: [1,1,1,3,3,4,3,2,4,2] 输出: true
二、解题思路
分析:只有数组中,有重复元素出现,就可以立刻返回结果。相到的两种实现方式:一种直接调用set()函数,通过判断集合的长度和数组的长度是否相等;另一种则是建立map,一旦有值在此出现在map中,则立刻返回。
三、python具体实现
调用set函数实现:
[code]class Solution(object): def containsDuplicate2(self, nums): """ :type nums: List[int] :rtype: bool """ return len(set(nums)) != len(nums)
使用map实现:
[code]class Solution(object): def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ numDict = {} for i in range(len(nums)): if nums[i] not in numDict: numDict[nums[i]] = 0 else: return True return False
四、题外话
原本觉得,map会慢一点,结果系统的结果显示,二者速度差不多。
发现一个问题:判断map中是否存在某个key,不要使用dict.keys(),在进行判断,严重影响程序运行效率,关键的原因是丢失了map的良好特性。
相关文章推荐
- leetcode 217.存在重复元素
- leetcode217. 存在重复元素
- [LeetCode系列]子集枚举问题[有重复元素]
- 一个有趣的问题:怎么在JS的数组中去除重复元素?(JAVA实现吧..)
- 【LeetCode-面试算法经典-Java实现】【082-Remove Duplicates from Sorted List II(排序链表中删除重复元素II)】
- Leetcode 83 删除排序链表中的重复元素 Python C++ 史上最详细题解系列
- python实现嵌套列表、字典按某一元素去重复
- 面试题---请写出一段Python代码实现删除一个list里面的重复元素
- **请写出一段Python代码实现删除一个list里面的重复元素
- leetcode 287. Find the Duplicate Number 数组重复元素查询 + 环的存在判定 + 快慢指针 + 很妙的想法
- 一个关于去除数组重复元素的问题(C语言实现)
- Leetcode 82 删除排序链表中的重复元素 II Python C++ 史上最详细题解系列
- [leetcode]存在重复元素 II[javascript]
- Python代码实现:删除一个list里面的重复元素
- Python代码实现删除一个list里面的重复元素
- python list 去重重复元素问题
- [LeetCode系列]子集枚举问题[无重复元素]
- Python实现列表删除重复元素的三种常用方法分析
- leetcode 47. Permutations II 全排列问题(去掉重复元素)+递归
- Python实现判断给定列表是否有重复元素的方法