1. 程式人生 > 其它 >Day11 陣列中數字出現的次數【待優化】

Day11 陣列中數字出現的次數【待優化】

技術標籤:劍指offer

題目:
一個整型陣列 nums 裡除兩個數字之外,其他數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。要求時間複雜度是O(n),空間複雜度是O(1)。
leetcode原題連結

思路:
用set()函式,先將陣列nums簡化,得到無重複數字的元素集。
再用for迴圈遍歷 計數count()
res用來存放最終輸出的結果(列表形式)
n用來計數,表示目前找到了幾個【只出現一次的數字】
當n==2時,return 此時的res,函式終止執行。

程式碼:
時間複雜度和空間複雜度未滿足題目要求,暴力提交

class Solution:
    def singleNumbers
(self, nums: List[int]) -> List[int]: temp=set(nums) res=[] n=0 for i in temp: if nums.count(i)==1: res.append(i) n+=1 if n==2: return res

待優化
在這裡插入圖片描述