【Leetcode】Day1 Singular number(python)
阿新 • • 發佈:2018-03-06
markdown github ats solution algo 記錄 題目 給定 額外
開個貼記錄leetcode刷題,每天刷五道easy,刷完後刷medium,用python和c++做。今天第一天,加油!
題目
原題
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
翻譯
給定一個數組,裏面全是整數,每個數字都重復兩遍,只有一個沒有重復,找到那個不重復的數字。 註意:時間復雜度為線性,並且不占用額外內存。
鏈接
- singular number
方法
我的方法
from collections import Counter
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
return [k for k,v in Counter(nums).items() if v == 1]
if __name__==‘__main__‘:
print Solution().singleNumber([1 ,1,2,2,3])
輸出結果
3
結果
Wrong Answer
正確答案
import operator
class Solution:
"""
:type nums: List[int]
:rtype: int
"""
def singleNumber(self, A):
return reduce(operator.xor, A)
if __name__ == ‘__main__‘:
print Solution().singleNumber([1, 1, 2, 2, 3])
感想
一開始疑惑為啥錯了,後來放到一起比較後,發現正確答案輸出的是int 3,我輸出的list [3],後來在return後面加上了取出這個list的值,結果就對了,但是運行速度很慢,對比一下: - 我的答案:You are here! Your runtime beats 14.20 % of python submissions. - github答案:You are here! Your runtime beats 66.96 % of python submissions. 為啥我的答案要慢這麽多呢?留個坑想想
【Leetcode】Day1 Singular number(python)