数组中的重复数字

package jz03;

import java.util.HashSet;

/**
 * @描述 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,
 * 但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
 * @创建人 jxx
 * @创建时间 2021/6/27
 * @修改人和其它信息
 */
public class FindRepeatNumber {

    public static void main(String[] args) {
        int[] arr = {1,2,3,2,1,4,5,4};
        System.out.println(findRepeatNumber(arr));
    }

    /**
     * 思路:1.判断值是否存在在set中,存在说明重复了,直接返回,不存在则添加至set中
     * @param nums
     * @return
     */
    private static int findRepeatNumber(int[] nums) {
        HashSet<Integer> set = new HashSet<>();
        for (Integer value : nums) {
            if(set.contains(value)) return value;
            set.add(value);
        }
        return -1;
    }
}

 

上一篇:android-扩展MaterialButton时无法检索在styles.xml中设置的自定义属性


下一篇:Java集合接口collection,list,set与map详解