Discuss / Java / 作业2原地哈希

作业2原地哈希

Topic source

骐瑞QQ

#1 Created at ... [Delete] [Delete and Lock User]
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;    }}

  • 1

Reply