摘要:描述给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数应该返回。因为取值到倒数第二位就可以对比完,因为使用的是楼下有大神回复了,看到一种比较简答的优秀解法对数据去重,如果长度变化,说明存在重复元素。
描述
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数应该返回 true。如果每个元素都不相同,则返回 false。
1.自己的方法,双循环,但是题目提示超过时间限制了
class Solution(object): def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ if len(nums)==0: return False else: for i in range(len(nums)): for j in range(len(nums)): if nums[i]==nums[j] and i!=j: return True return False
2.后面又想到一种方法,先排序,对比前后两个元素的值,如果存在相当就返回True。len(nums)-1因为取值i到倒数第二位就可以对比完,因为if 使用的是nums[i+1]
class Solution(object): def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ nums.sort() if len(nums) == (1 or 0): return False else: for i in range(len(nums)-1) : if nums[i] == nums[i+1]: return True return False
3.楼下有大神回复了,看到一种比较简答的优秀解法:对数据去重,如果长度变化,说明存在重复元素。
class Solution: def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ return True if len(nums) != len(set(nums)) else False
4.楼下大神的字典解法:也很优秀,如果字典不存在数组的值,就dict[i] =i
class Solution(object): def containsDuplicate(self, nums): if len(nums) == 0: return False; else: dict = {} for i in nums: if dict.get(i) is not None: return True else: dict[i] = i return False
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/41519.html
摘要:解决幂等问题的三部曲,也是作者的思考框架。这是解决幂等问题的第二部曲列出并减少副作用的分析维度。所以在并发执行的维度,将并发重复执行变成串行重复执行是最好的幂等解决方案。 纲要 文章目的:本文旨在提炼一套分布式幂等问题的思考框架,而非解决某个具体的分布式幂等问题。在这个框架体系内,会有一些方案举例说明。文章目标:希望读者能通过这套思考框架设计出符合自己业务的完备的幂等解决方案。文章内容...
摘要:题目描述存在重复给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回。示例输入输出示例输入输出示例输入输出思路排序,遍历比较实现 题目描述 存在重复给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2:...
阅读 2111·2021-11-24 09:39
阅读 1499·2019-08-30 15:44
阅读 1948·2019-08-29 17:06
阅读 3397·2019-08-29 16:32
阅读 3545·2019-08-29 16:26
阅读 2659·2019-08-29 15:35
阅读 3027·2019-08-29 12:50
阅读 1639·2019-08-29 11:15