剑指Offer(第二版)03

Posted on 2022-11-24 21:20  梦中千秋  阅读(7)  评论(0编辑  收藏  举报

题目

@Description: 找出数组中重复的数字

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的, 但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 2 <= n <= 100000

码子

public int findRepeatNumber3(int[] nums) {
        //先排序!!!
        Arrays.sort(nums);
        int p = 0;
        while (p < nums.length) {
        		//如果相邻的两个数相等,则返回
            if (nums[p] == nums[p + 1]) {
                return nums[p];
            }
            p++;
        }
        //如前面未返回,则抛出 运行时异常,提示未找到重复的数
        throw new RuntimeException("Not Found");
    }