217. 存在重复元素

 

 

 

思路:

题意为:只要有一个元素出现次数>=2,则返回true;不然返回false;
利用list转set会去重的特色。
注:
len(setnums) == len(nums)时,说明每一个元素都是惟一的,返回false;
只要去重后长度减少,说明有重复元素,则返回true。

两种:
 1 class Solution(object):
 2     def containsDuplicate(self, nums):
 3         """
 4         :type nums: List[int]
 5         :rtype: bool
 6         """
 7         setnums = set(nums)
 8         # print(setnums)
 9         if len(setnums) == len(nums):
10             return False
11         else:
12             return True
13 
14     """
15     思路:排序后用遍历实现。
16     """
17     def containsDuplicate2(self, nums):
18         """
19         :type nums: List[int]
20         :rtype: bool
21         """
22         nums = sorted(nums)
23         for i in range(1, len(nums)):
24             if nums[i] == nums[i - 1]:
25                 return True
26         return False
27 
28 if __name__ == '__main__':
29     solution = Solution()
30     print(solution.containsDuplicate([1, 5, 3, 4, 2]))
相关文章
相关标签/搜索