题解 | #数组中重复的数字#
数组中重复的数字
http://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524
方法一:时间复杂度:O(n)花费时间:0.0010638000000000002
集合使用方法
class Solution: def duplicate(self , numbers ): # write code here if len(numbers) ==0: return -1 #执行到该return语句时,函数终止,后边的语句不再执行 result = set() for num in numbers: if num not in result: result.add(num) else: return num else: #for执行完了还没return,(因为函数遇到return结束),所以在下面函数return return -1
方法二:时间复杂度:O(n方)花费时间:5.0910871
class Solution: def duplicate(self , numbers ): # write code here flag = 0 ##定义标志位,如果有两层循环,内层循环执行结束若想要直接跳出全部循环,则需要一个标志位,内层break后在外层开头再break一下 len_numbers = len(numbers) if len_numbers !=0: for i in numbers: if flag ==1: break result = 0 for j in numbers: if i == j: result += 1 if result ==2: output = i flag =1 #找到重复数,需要结束全部内层外层循环,所以这里设置一个标志位 break if result ==1: output = -1 else: output = -1 return output
总结:数组查重用集合!