面试题:C#声明一个100大小的数组 随机生成1-100之间不重复的数
我的实现:
- static Random random = new Random();
- static void Main(string[] args)
- {
- Console.WriteLine(DateTime.Now.Millisecond);
- int[] data = new int[100];
- System.Collections.Hashtable ht = new System.Collections.Hashtable();
- for (int i = 0; i < 100; i++)
- {
- ht.Add(i, 0);
- }
- for(int i = 0; i < 100;i++)
- {
- data[i] = GetRandom( ref ht);
- }
- Console.WriteLine(DateTime.Now.Millisecond);
- Console.Read();
- }
- private static int GetRandom(ref System.Collections.Hashtable ht)
- {
- int tem = random.Next(0, 100);
- if ((int)ht[tem] == 0)
- {
- ht[tem] = 1;
- return tem;
- }
- else
- {
- return GetRandom(ref ht);
- }
- }
貌似比网上的朋友写的代码多……不过即兴发挥,这样也可以了……效率貌似还可以……就是代码多了几行……
blog园的朋友的实现: