leetcode-645. 错误的集合

645. 错误的集合 - 力扣(Leetcode)

又用了哈希表,又用了数学计算,看题解有个位运算看不太懂

func findErrorNums(nums []int) []int {
    m := make(map[int]struct{}, len(nums))
    
    pSum := (1+len(nums))*len(nums)/2
    ret := []int{}
    sum := 0

    for _, v := range nums {
        sum+=v
        if _, ok := m[v]; ok {
            ret = append(ret, v)
        }

        m[v] = struct{}{}
    }

    // fmt.Print(sum, pSum)
    ret = append(ret, ret[0] - (sum - pSum))
    return ret
}
posted @ 2023-01-03 23:58  吴丹阳-V  阅读(18)  评论(0)    收藏  举报