|
主题: 判断重复数
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#12004/11/25 1:16:44
比如有一个数组1——100,数组里的数必须是1--100的数字,并且不能有重复,怎样判断算法好一些。
非常大鱼
|
不是高手
职务:普通成员
等级:3
金币:5.0
发贴:1352
|
#22004/11/25 8:27:36
对,我也碰到过类似问题,产生一堆在一定范围内的随机数,不能重复,不知道哪种算法好点。
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#32004/11/25 14:49:11
最笨的办法是二个循环 for (int i = 0; i < array.Length; i++) { found = false for (int j = 0; j < array.Length; j++) { if (array[j] == i + 1) { found = true; break; } } if (!found) { return false; } }
其次,用一个临时数组,把找到的一个加入到临时数组中,并把数组的该数字去掉,可以少些循环。问题是数组去掉一个数字也并不容易,需要把后面的数字往前移动1。是否不用数组而用链表。c#中的ArrayList不知怎样。
另外,是否把它看成一个排序的问题,排序完成后,只要后面的数字比前面大1就可以了。
非常大鱼
|
panliu888
职务:普通成员
等级:1
金币:0.0
发贴:26
|
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#52004/11/26 0:49:46
你是先把数字填入数组,再打乱,也是种方法。
非常大鱼
|