645. 缺失的集合(Python)

題目

難度:★☆☆☆☆
類型:數(shù)組

集合 S 包含從1到 n 的整數(shù)。不幸的是,因?yàn)閿?shù)據(jù)錯(cuò)誤,導(dǎo)致集合里面某一個(gè)元素復(fù)制了成了集合里面的另外一個(gè)元素的值,導(dǎo)致集合丟失了一個(gè)整數(shù)并且有一個(gè)元素重復(fù)。

給定一個(gè)數(shù)組 nums 代表了集合 S 發(fā)生錯(cuò)誤后的結(jié)果。你的任務(wù)是首先尋找到重復(fù)出現(xiàn)的整數(shù),再找到丟失的整數(shù),將它們以數(shù)組的形式返回。

注意
給定數(shù)組的長度范圍是 [2, 10000]。
給定的數(shù)組是無序的。

示例

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

解答

我們可以分別求取重復(fù)的元素和缺失的元素,這里由于只有一個(gè)重復(fù)元素,我們可以將輸入數(shù)組之和與去重后數(shù)組之和做差求取重復(fù)元素,對于缺失元素,我們可以將補(bǔ)全后的集合與去重后的集合做差求取。

class Solution:
    def findErrorNums(self, nums: list) -> list:
        nums_set = set(nums)                        # 獲得輸入數(shù)組的集合
        repeat = sum(nums) - sum(nums_set)          # 求和相減即為重復(fù)
        correct_set = set(range(1, len(nums)+1))    # 理想情況下的數(shù)組
        defect = correct_set - nums_set             # 集合相減即為缺失
        return [repeat, defect.pop()]               # 返回結(jié)果

如有疑問或建議,歡迎評論區(qū)留言~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 6,017評論 0 9
  • 排序算法幾種分類方式: 1,穩(wěn)定排序和不穩(wěn)定排序 如果a==b, 當(dāng)排序之前a在b的前面,排序后,a仍然在b...
    fly_ever閱讀 507評論 0 0
  • 四、集合框架 1:String類:字符串(重點(diǎn)) (1)多個(gè)字符組成的一個(gè)序列,叫字符串。生活中很多數(shù)據(jù)的描述都采...
    佘大將軍閱讀 878評論 0 2
  • 轉(zhuǎn)載自:https://egoistk.github.io/2016/09/10/Java%E6%8E%92%E5...
    chad_it閱讀 1,077評論 0 18
  • pyspark.sql module Module context Spark SQL和DataFrames中的重...
    盜夢者_(dá)56f2閱讀 5,682評論 0 19

友情鏈接更多精彩內(nèi)容