一、题目描述
二、代码解析
解法一:先排序然后再判断是否存在两个相邻的数。
class Solution(object):
def containsDuplicate(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
nums.sort()
for i in range(1,len(nums)):
if(nums[i]==nums[i-1]):
return True
return False
# solution = Solution()
# result = solution.containsDuplicate([1,2,3,1])
# print(result)
拿到这个题后,最容易想到的就是用两个循环来逐个判断是否存在两个相同的数,但这无疑会超时。因此,接着就想到先排序,再用一个循环来判断是否存在两个相同的数,避免超时。
解法二:先用set函数进行转换,再判断长度。
class Solution(object):
def containsDuplicate(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
if len(nums)==len(set(nums)):
return False
else:
return True
# solution = Solution()
# result = solution.containsDuplicate([1,2,3,1])
# print(result)
注:Python中的set函数相当于取重操作。
解法三:哈希表
哈希算法还没研究明白,后续想明白了会来补充的…
三、总结
官方的题解可以点这里。