剑指offer4J

剑指offer4J【C2 P3】找出数组中重复数字

2020-11-17  本文已影响0人  sxqiong

题目

找出数组中重复的数字
数组中数字都在0~n之间,其中有些数字是重复的,但不知道谁重复,可能有1到多个重复的数字,请找出任意一个。

题解

解法1:

解法2:

解法3:

    public int findRepeatNumber(int[] nums) {
        if(nums==null) return -1;
        for(int i=0;i<nums.length;i++){
            int val = nums[i];
            while(val!=i){
                if(nums[val]==val){
                    return val;
                }
                int temp = nums[val];
                nums[val] = val;
                val = temp;
            }
        }
        return -1;
    }

源码: 剑指offer4J

上一篇 下一篇

猜你喜欢

热点阅读