国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

136. Single Number [easy] [python]

2019-11-06 06:14:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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?

Subscribe to see which companies asked this question.

答案

思路一:只有一個(gè)不重復(fù),取nums的set得到不重復(fù)的list,然后求和兩倍list減去原來(lái)的nums就得到不重復(fù)的那個(gè)。

class Solution(object):def singleNumber(self, nums): return sum(list(set(nums)))*2 - sum(nums)思路二:利用異或的自反性與交換律。(a^a)^(b^b)^(c^c)^……^z=z.因?yàn)閍^a=b^b=0.

class Solution(object):    def singleNumber(self, nums):        """        :type nums: List[int]        :rtype: int        """        result=0        for i in nums:            result^=i        return result

思路一速度遠(yuǎn)快于思路二,但思路一是利用python中set的特性:set中沒(méi)有重復(fù)元素。所以僅在python中可用。思路一除了set()操作,sum操作的時(shí)間復(fù)雜度為o(n)。思路二需要遍歷所有元素,每次遍歷需要異或操作,時(shí)間復(fù)雜度為o(異或的時(shí)間復(fù)雜度*n)        


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 浦北县| 莱西市| 荥阳市| 梧州市| 洮南市| 龙州县| 呈贡县| 绿春县| 翁源县| 鄂托克前旗| 亳州市| 工布江达县| 舟曲县| 万安县| 武义县| 屯留县| 耿马| 望谟县| 资阳市| 剑河县| 银川市| 红河县| 南投县| 吉林省| 元氏县| 罗田县| 五家渠市| 雷波县| 江城| 花莲市| 商南县| 尼木县| 长沙市| 烟台市| 东丽区| 陆河县| 托克逊县| 吴川市| 习水县| 深泽县| 新巴尔虎右旗|