1. 程式人生 > >Set Mismatch

Set Mismatch

通過 復雜度 添加 self ges 思路 ima int mis

    這道題是簡單題

  題目:

    技術分享

  思路:

    1、我的思路:for循環1到n的自然數,nums列表刪除i,如果捕獲到異常,就在後面nums後面添加i,最後返回nums。但是這樣做復雜度太高,程序運行會超時,所以需要改進

    2、另外加入一個列表b,循環nums列表對應b[i] + 1,最後遍歷b列表,返回b[i]等於2和0的i值

  代碼:

    1、超時代碼:

 1 class Solution(object):
 2     def findErrorNums(self, nums):
 3         """
 4         :type nums: List[int]
5 :rtype: List[int] 6 """ 7 8 for i in range(1,len(nums)+1): 9 try: 10 nums.remove(i) 11 12 except ValueError: 13 nums.append(i) 14 return nums

    2、通過代碼:

  

 1 class Solution(object):
 2     def
findErrorNums(self, nums): 3 """ 4 :type nums: List[int] 5 :rtype: List[int] 6 """ 7 8 a = len(nums) 9 b = [0] * (a+1) 10 for i in nums: 11 b[i] += 1 12 for i in range(1, a+1): 13 if b[i] == 2: c = i
14 if b[i] == 0: d = i 15 return c, d

Set Mismatch