面试题3:数组中重复的数字
2018-03-09 21:54
281 查看
lis = [2,1,3,4,3] def f(lis): for index in range(len(lis)): while index != lis[index]: if lis[index] == lis[lis[index]]: print(lis[index]) break k = lis[index] lis[index] = lis[lis[index]] lis[k] = k print(f(lis))题目二:不修改数组找出重复数字
def f_2(lis):
if lis == None:
return False
end = len(lis) - 1
start = 1
while end >= start:
mid = (end-start)//2+start
count = contrange(lis, start, mid)
if end == start:
if count >1:
return start
else:
break
if count >(mid - start +1):
end = mid
else:
start = mid + 1
def contrange(lis, start, end):
if lis == None:
return False
c = 0
for i in range(len(lis)):
if (lis[i] >= start) and (lis[i] <= end):
c += 1
return c
相关文章推荐
- 一道Javascript面试题,去除数组中的重复数字,大家看看我的做法是否正确
- 面试题55:数组中重复的数字*
- 算法面试题之不修改数组找出重复的数字
- 面试题 51: 数组中重复的数字
- 面试题(三)数组中的重复数字
- 剑指offer面试题(三)数组中重复的数字
- 剑指offer——面试题51:数组中重复的数字
- 面试题51-数组中重复的数字
- 《剑指offer-面试题3-数组中重复的数字》
- 算法面试题之数组中重复的数字
- 剑指offer--面试题51: 数组中重复的数字
- 把一个整形数组中重复的数字去掉 - 微软面试题
- 面试题51:数组中重复的数字
- 面试题51 数组中重复的数字
- 面试题3:数组中重复的数字
- 面试题3:数组中重复的数字
- (python)剑指Offer 面试题51:数组中重复的数字
- 剑指Offer面试题51(Java版):数组中重复的数字
- 面试题51. 数组中重复的数字
- 剑指offer 面试题3:数组中重复的数字