经典笔考题疑问?产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
经典笔试题疑问?产生一个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,循环了几个啦?
------解决方案--------------------
产生一个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..