日期:2014-05-17  浏览次数:20410 次

经典笔试题疑问?产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。

int[] intArr=new int[100];

ArrayList myList=new ArrayList();

Random rnd=new Random();

while(myList.Count<100)

{

int num=rnd.Next(1,101);

if(!myList.Contains(num))

myList.Add(num);

}

  for(int i=0;i<100;i++)

  intArr[i]=(int)myList[i]; 




请问myList.Count<100,循环了几个啦?






------解决方案--------------------
C# code

//一句代码就可以搞定的事 为何写那么复杂
var lst=Enumerable.Range(1,100).OrderBy(l=>Guid.NewGuid()).ToList();

------解决方案--------------------
循环 至少 100次
------解决方案--------------------
Linq的确很强大
------解决方案--------------------
0到99刚好循环一百次
------解决方案--------------------
循环 至少 100次
C# code

if(!myList.Contains(num))
   myList.Add(num);

------解决方案--------------------
又归结到数组全排列上...这个网上的算法没看懂
我就想到了全for..