题解 | #数组中重复的数字#
数组中重复的数字
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总结:数组查重用集合!



查看5道真题和解析