#查找数组中的重复数字 题目:长度为n的数组,所有数字都在0到n-1范围内 #方法一:查找到一个重复的即可(哈希表解决,Python里的字典) def findsamenum1(m): dict={} for i in range(len(m)): if m[i] not in dict: dict[m[i]]=i else: print(m[i]) break print(dict) #方法一:查找到所有重复的 (哈希表解决,Python里的字典) def findsamenumall(m): dict={} for i in range(len(m)): if m[i] not in dict: dict[m[i]]=i else: print(m[i]) print(dict) #方法二:查找到一个重复的即可 (如果没有重复数,则下表i等于当前数m[i]) def findsamenum21(lst): for i in range(len(lst)): while i != lst[i]: if lst[i] != lst[lst[i]]: lst[lst[i]], lst[i] = lst[i], lst[lst[i]] else: print(lst[i]) print(lst) break if __name__ == '__main__': m = [2, 3, 1, 0, 2, 5, 3] findsamenum1(m) findsamenumall(m) findsamenum21(m)
剑指offer第3题 查找数组中的重复数字 Python实现(两种方法:哈希表解决 数组下标匹配解决)
最新推荐文章于 2023-02-22 23:16:32 发布