題意爲:只要有一個元素出現次數>=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]))