Discuss / Java / 作业

作业

Topic source

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);

        }

        // 洗牌算法suffle可以随机交换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 ? "测试成功" : "测试失败");

    }

    /**

     * TODO: 找出从start到end的缺失的数字并返回

     */

static int findMissingNumber(int start, int end, List<Integer> list) {

     **   //create a new ArrayList list2 which is the same as the initial list**

        List<Integer> list2 = new ArrayList<>();

        for (int i = start; i <= end; i++) {

            list2.add(i);

        }

       ** //remove the elements of list from list2**

        for (Integer n: list)

            list2.remove(n);

       //the last remain element in list2 is missing from list

        if (list2.size()==1)

            return list2.get(0);

        else

            return 0;

    }


  • 1

Reply