国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 雷山县| 荣成市| 乌什县| 桃园县| 华阴市| 阿克苏市| 黄骅市| 崇仁县| 秭归县| 佳木斯市| 化德县| 乡城县| 彰化县| 营山县| 忻城县| 柏乡县| 阳信县| 上思县| 获嘉县| 嫩江县| 龙胜| 绥化市| 禹城市| 洪泽县| 张家界市| 伊金霍洛旗| 忻州市| 德州市| 玛沁县| 化德县| 昌江| 秀山| 赣榆县| 泾源县| 泰和县| 常熟市| 南华县| 清镇市| 墨竹工卡县| 锡林浩特市| 孝昌县|