1. 程式人生 > 實用技巧 >第217題:存在重複元素

第217題:存在重複元素

第217題:存在重複元素

描述:

  給定一個整數陣列,判斷是否存在重複元素。

  如果任意一值在陣列中出現至少兩次,函式返回true。如果陣列中每個元素都不相同,則返回false

示例:

輸入: [1,2,3,1]  
輸出: true
輸入: [1,2,3,4]
輸出: false

解題思路:(常規問題,常規解法)

  法1使用棧的思想;法2使用快慢指標的思想。

Python程式碼(超時):

 1 class Solution(object):
 2     def containsDuplicate(self, nums):
 3         """
 4         :type nums: List[int]
5 :rtype: bool 6 """ 7 nums_list = [] 8 for i in nums: 9 if i not in nums_list: # not的使用 10 nums_list.append(i) 11 else: 12 return True 13 return False

Python程式碼(通過):

 1 class Solution(object):
 2     def
containsDuplicate(self, nums): 3 """ 4 :type nums: List[int] 5 :rtype: bool 6 """ 7 nums.sort() # sort()方法無返回值 8 for i in range(len(nums) - 1): 9 if nums[i] == nums[i + 1]: 10 return True 11 return False

方法對比:

  1. 法1新建立了一個列表nums_list,重新開闢了一個記憶體,當原nums很大時,導致記憶體不足,計算不通過。
  2. 法2在原nums上進行排序(原址排序),未開闢新記憶體空間,計算通過。