Day11 陣列中數字出現的次數【待優化】
阿新 • • 發佈:2021-01-24
技術標籤:劍指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
待優化