中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

LeetCode如何查出只出現一次的數

發布時間:2021-12-15 10:47:24 來源:億速云 閱讀:155 作者:小新 欄目:大數據

這篇文章將為大家詳細講解有關LeetCode如何查出只出現一次的數,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

1

 題目描述

給定一個非空整數數組,只有一個數字出現一次,其余出現兩次,找出只出現一次的數字。如輸入[3,4,5,4,3],輸出5。

2

 知識點

思路一  :  建立哈希表記錄每個值出現的次數

前兩天刷題都是建立哈希表,思維慣性第一反應又是這個。遍歷每個值,建立字典記錄出現次數,返回出現次數為1的值即可。

class Solution:    def singleNumber(self, nums: List[int]) -> int:        countnum=dict()        for i in nums:            if i in countnum:                countnum[i]=countnum[i]+1            else:                countnum[i]=1        for e,v in countnum.items():            if v == 1:                return e
思路二  :  集合差值

python中set表示無序不重復集合,對集合可直接求差值,得到兩個集合中不同的值。

class Solution:    def singleNumber(self, nums: List[int]) -> int:        nums.sort()         return list(set(nums[::2]) - set(nums[1::2]))[0]
思路三  :  異或運算(位運算)

看其他人解題思路看到的方法。異或運算規則是:如果a、b兩個值不相同,則結果為1;如果a、b兩個值相同,結果為0。計算機中用二進制進行存儲,所以[3,5,3]通過異或有如下結果:3是011,5是101,兩者異或結果為110,再與3進行異或則為011^110=101,即所要的結果5。

class Solution:    def singleNumber(self, nums: List[int]) -> int:        res = 0        for i in nums:            res ^= i        return res

關于“LeetCode如何查出只出現一次的數”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

井研县| 焦作市| 晴隆县| 新宾| 大冶市| 清丰县| 如东县| 城步| 张家港市| 平乡县| 茂名市| 五原县| 邢台县| 松阳县| 从江县| 刚察县| 汾西县| 遂溪县| 道孚县| 民乐县| 军事| 黔西| 西畴县| 鄄城县| 巢湖市| 朝阳市| 玉田县| 临潭县| 昌邑市| 新蔡县| 新绛县| 临洮县| 松原市| 天全县| 龙岩市| 大理市| 临武县| 彭泽县| 凤城市| 永定县| 宝兴县|