生成一个长度为100的数组,为数组中的每一项随机填充1-100之间的数并且保证不重复
面试的时候常考
主要的思路是,先生成一个1到100的数组,然后在利用随机数,循环遍历数组将顺序打乱。。
1 int[] arr = new int[100]; 2 for (int i = 0; i < 100; i++) 3 { 4 arr[i] = i + 1; 5 } 6 for (int i = 0; i < 100; i++) 7 { 8 Random rand = new Random(i); 9 int temp = 0; 10 int r = rand.Next(0, 100); 11 temp = arr[i]; 12 arr[i] = arr[r]; 13 arr[r] = temp; 14 }
当然也有其他的方法,比如从第一个开始插入,然后生成1到100的随机数,然后插入的时候判断是否已经存在,在这里就不写了