标签:.so 给定一个整数数组 pytho 其他 时间复杂度 sel for list lis
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。
示例 1:
输入: [1,2,3,1] 输出: true
示例 2:
输入: [1,2,3,4] 输出: false
示例 3:
输入: [1,1,1,3,3,4,3,2,4,2] 输出: true
——————————————————————————————————————————————
用Python的list.cout()方法暴力试一下:TOL
1 class Solution(object): 2 def containsDuplicate(self, nums): 3 """ 4 :type nums: List[int] 5 :rtype: bool 6 """ 7 list_len = len(nums) 8 for i in range(0, list_len): 9 if nums.count(nums[i]) > 1: 10 return True 11 12 return False
然后看到别人的博客里有手写循环暴力的,又试了一下:TOL
1 class Solution(object): 2 def containsDuplicate(self, nums): 3 """ 4 :type nums: List[int] 5 :rtype: bool 6 """ 7 list_len = len(nums) 8 for i in range(0, list_len): 9 for j in range(i+1, list_len): 10 if nums[i] == nums[j]: 11 return True 12 13 return False
然后偷看了别人的代码,发现可以先排序,这样时间复杂度反而下降,思路非常顺畅:AC
1 class Solution(object): 2 def containsDuplicate(self, nums): 3 """ 4 :type nums: List[int] 5 :rtype: bool 6 """ 7 array_len = len(nums) 8 nums.sort() 9 for i in range(0, array_len-1): 10 if nums[i] == nums[i+1]: 11 return True 12 13 return False
想不到更好的方法了……
这题对我来说挺有意思,水尽山穷疑无路 -> 柳暗花明的感觉,再想想应该会有其他的启发。
标签:.so 给定一个整数数组 pytho 其他 时间复杂度 sel for list lis
原文地址:https://www.cnblogs.com/qinziang/p/9201695.html