leetcode645. 错误的集合

645. 错误的集合

难度简单98

集合 S 包含从1到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。

给定一个数组 nums 代表了集合 S 发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。

示例 1:

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

注意:

  1. 给定数组的长度范围是 [2, 10000]。
  2. 给定的数组是无序的。

记录出现次数即可。

class Solution {
    public int[] findErrorNums(int[] nums) {
        int[] resule = new int[2];
        int[] temp = new int[nums.length+1];
        for(int num : nums) {
            temp[num]++;
        }
        for(int i = 1; i < temp.length; i++){
            if(temp[i] == 2)
                resule[0] = i;
            if(temp[i] == 0)
                resule[1] = i;
        }
        return resule;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章