题解 | #数组中重复的数字#
数组中重复的数字
http://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524
思路:
1.首先遍历数组 由题意可知如果对数组进行排序index和val应该一致
2.遍历数组 先判断number[i] ?= i 如果等于直接next
3.不等于的话 number[i]值m m索引对应的值是不是m 如果是的话 则找出重复值m 分别是number[i]和number[m]
4.如果m索引对应的值不是m 则number[i] = number[m] ; number[m] = m
代码:python3
for i, num in enumerate(numbers):
while number[i] != i:
m = number[i]
if number[m] == m:
return m
else:
number[i] = number[m]
number[m] = m
return -1