public class Main { public static void main(String[] args) { // 构造从start到end的序列: final int start = 10; final int end = 20; List<Integer> list = new ArrayList<>(); for (int i = start; i <= end; i++) { list.add(i); } // 洗牌算法shuffle可以随机交换List中的元素位置: Collections.shuffle(list); // 随机删除List中的一个元素: int removed = list.remove((int) (Math.random() * list.size())); int found = findMissingNumber(start, end, list); System.out.println(list.toString()); System.out.println("missing number: " + found); System.out.println(removed == found ? "测试成功" : "测试失败"); } static int findMissingNumber(int start, int end, List<Integer> list) { list.add(0); for (int i = 0; i < list.size() - 1; i++) { while (list.get(i) != 0 && list.get(i) - 10 != i) { Collections.swap(list, i, list.get(i) - 10); } } return list.indexOf(0) + 10; }}
骐瑞QQ