287. 寻找重复数

  1. 287. 寻找重复数
  • 题解
  • 287. 寻找重复数

    难度中等907

    给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。

    示例 1:

    输入: [1,3,4,2,2]
    输出: 2

    示例 2:

    输入: [3,1,3,4,2]
    输出: 3

    说明:

    1. 不能更改原数组(假设数组是只读的)。
    2. 只能使用额外的 O(1) 的空间。
    3. 时间复杂度小于 O(n2) 。
    4. 数组中只有一个重复的数字,但它可能不止重复出现一次。

    通过次数101,723

    提交次数154,276

    题解

    class Solution {
        public int findDuplicate(int[] nums) {
            Set<Integer> temp = new HashSet<>();
            int res = 0;
            for(int i =0; i < nums.length; i++){
                temp.add( nums[i]);
                if(temp.size() != i+1){
                    res= nums[i];
                    break;
                }
            }
            return res;
        }
    }

    转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 mym_74@163.com