首页 > 试题广场 >

给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判

[问答题]
给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复 的数字。(原数组不必保留)
把第值为m的数字放在第m个位置,如果该位置已经有m,说明重复,否则,继续,时间复杂度o(n
),额外空间复杂度为o(1)
发表于 2016-10-10 06:17:08 回复(0)
2重循环

发表于 2016-06-27 19:48:15 回复(0)
如果对算法时间没有要求,直接用个二重循环就OK
发表于 2016-06-27 19:00:31 回复(0)
采用java编程语言,将数组中的所有元素添加到集合HashSet中,然后调用HashSet的Size()方法计算HashSet的大小,再与数组的长度进行比较,如果相等则说明没有重复的数字,否则就有重复的数字。
发表于 2016-06-27 17:27:44 回复(0)
排序后判断相邻两数字是否相同
发表于 2016-06-27 16:44:29 回复(0)
可以采用位图的方法
发表于 2016-06-27 10:37:48 回复(0)