题意为:只要有一个元素出现次数>=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]))