码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode-探索 | 存在重复

时间:2018-06-20 00:48:49      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:.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

想不到更好的方法了……

这题对我来说挺有意思,水尽山穷疑无路 -> 柳暗花明的感觉,再想想应该会有其他的启发。

 

Leetcode-探索 | 存在重复

标签:.so   给定一个整数数组   pytho   其他   时间复杂度   sel   for   list   lis   

原文地址:https://www.cnblogs.com/qinziang/p/9201695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!