1112. 寻找数据错误

1112. 寻找数据错误

中文English

集合S中原本包含数字1n。但不幸的是,由于数据错误集合中的一个数变成了集合中的另一个数,这导致集合中有两个重复的数,并且集合中缺失了1n的某个数。

给定数组nums,表示发生错误后的数组,以数组的形式返回重复的数值和缺失的数值。

样例

样例 1:

输入: nums = [1,2,2,4]
输出: [2,3]
解释:
2是重复的数,3是缺失的数。

样例 2:

输入: nums = [1,3,3,4]
输出: [3,2]
解释:
3是重复的数,2是缺失的数。

注意事项

1.数组的大小范围为[2, 10000]。
2.数组元素是无序的。

 
 
输入测试数据 (每行一个参数)如何理解测试数据?

 

class Solution:
    """
    @param nums: an array
    @return: the number occurs twice and the number that is missing
    """
    '''
    大致思路:
    1.初始化result = [],dic = {},格式{1:count,2:count...},每次循环都加到dic里面来,如果出现值存在dic里面的话,说明是第二次输入,重复的数值
    2.如果是没有出现的话,则为没有出现的数值。
    '''
    def  findErrorNums(self,nums):
        dic,result= {},[]

        ##取出重复的数值
        for i in nums:
            if i in dic:
                result.append(i)
            dic[i] = 1
        ##取出空的数值
        for j in range(1,len(nums)+1):
            if j not in dic:
                result.append(j)
        return result

 

posted @ 2020-04-12 12:03  风不再来  阅读(134)  评论(0编辑  收藏  举报