陣列——5、只出現一次的數字
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。
示例1:
輸入:[2, 2, 1]
輸出:1
示例2:
輸入:[4, 1, 2, 1, 2]
輸出:4
> 思路:對陣列中所有數字採用異或運算,相同數字的異或結果為0,最後得到的就是不重複的數字。
```python3
class Solution:
def singleNumber(self, nums):
res = 0
for i in nums:
res ^= i
return res
最佳方法:
思路:用集合找出所有不重複的數,計算其2倍之後減去原來的數,得到的即為只出現一次的數。
class Solution:
def singleNumber(self, nums):
return sum(set(nums)) * 2 - sum(nums)
相關推薦
陣列——5、只出現一次的數字
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 示例1: 輸入:[2, 2, 1] 輸出:1 示例2: 輸入:[4, 1, 2, 1, 2] 輸出:4 > 思路:對陣列中所有數字採用異或運算,相同數字的異或結果
Leetcode題解之陣列(5) 只出現一次的數字
題目描述: 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入
31、只出現一次的數字
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,2,1,2]
leetcode【陣列】 2 只出現一次的數字 -python3
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,2,
【位運算】找出陣列中,只出現一次的兩個數字
題目: 一個整型數組裡除了兩個數字之外,其他的數字都出現了兩次,請寫程式找出這兩個出現一次的數字。要求時間複雜度是O(n),空間複雜度是O(1). 分析: 由於限制了複雜度,所以要用異或運算來解,什麼是異或? 首先,計算機1個位元組是8位(1Byte=8bit);其次,異
leecode刷題(5)-- 只出現一次的數字
leecode刷題(5)-- 只出現一次的數字 只出現一次的數字 描述: 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例: 輸入: [4,1,2,1,2
其他數都出現了k次的陣列中找到只出現一次的數
參考自程式設計師程式碼面試指南 題目: 給定一個整型陣列,和一個大於1的整數k,已知arr中只有一個數出現了一次,其他的數都出現了k次,請返回只出現一次的數。 要求:時間複雜度為O(N),額外空間複雜度為O(1); 下面的例子是兩個七進位制數的無進位相加: a:
中金所面試題目之找出只出現一次數字
題目:n個int型數字,兩兩重複,只有一個是出現一次,找出它。 思路:^位異或操作,具有如下性質:1.交換律與結合律。2.自己與自己異或是0。3.自己與0異或是自己 程式碼: #include <
劍指offer之陣列中只出現一次的數字
1.題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 2.問題分析 方法一: 可以使用map,統計每個數出現的次數,之後對兩個出現一次的數進行賦值 方法二: 這裡就數字的特性,首先我們需要知
牛客網——陣列中只出現一次的數字
題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 1實在沒想到什麼好的解決方法,就用TreeSet解決,因為底層是紅黑樹實現,增加,刪除結點是logn,所以複雜度為O(nlogn) package 劍指offer;
陣列中只出現一次的數字 java
陣列中只出現一次的數字 java 題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 程式碼1: //num1,num2分別為長度為1的陣列。傳出引數 //將num1[0],num2[0]設定為返回結果 i
劍指offer:(40)知識遷移 :陣列中只出現一次的數字
一個整型數組裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。 思路: 可以用位運算實現,如果將所有所有數字相異或,則最後的結果肯定是那兩個只出現一次的數字異或 的結果,所以根據異或的結果1所在的最低位,把數字分成兩半,每一半
劍指offer系列(十四)二叉樹的深度,平衡二叉樹,陣列中只出現一次的數字
二叉樹的深度 題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。 解題思路: 利用遞迴實現。如果一棵樹只有一個結點,那麼它的深度為1。遞迴的時候無需判斷左右子樹是否存在,因為如果該節點 為葉節點,它的左右
劍指offer——(7)二進位制中1的個數&&陣列中只出現一次的兩個數字
位操作符簡單記憶: &(與):相同位同為1時結果為1 否則為0 |(或):相同位同為0時結果為0 否則為1 ^(異或):相同位相同結果為0 不同為1 ~(取反):0變成1 1變成0 m>>(右移)n:m的各二進位全部右移n位,低位丟
【Java】 劍指offer(56-2) 陣列中唯一隻出現一次的數字 《劍指Offer》Java實現合集 56-1) 陣列中只出現一次的兩個數字 《劍指Offer》Java實現合集
本文參考自《劍指offer》一書,程式碼採用Java語言。 更多:《劍指Offer》Java實現合集 題目 在一個數組中除了一個數字只出現一次之外,其他數字都出現了三次。請找出那個只出現一次的數字。 思路 這道題中數字出現了三次,無法像56-1) 陣列
微策略2011校園招聘筆試題(找出陣列中兩個只出現一次的數字)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
劍指offer 40. 陣列中只出現一次的數字
原題 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 Reference Answer 思路分析 直接利用python中的dict進行次數統計就好了,用空間換時間。 # -*- coding:utf-8 -*- class
劍指offer_陣列中只出現一次的數字
題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 # -*- coding:utf-8 -*- class Solution: # 返回[a,b] 其中ab是出現一次的兩個數字 &n
劍指offer——(15)第一個只出現一次的字元 && 陣列中重複的數字 && 字元流中第一個不重複的字元
public class Solution { public int FirstNotRepeatingChar(String str) { if(str.length()<=0) return -1; char c[] = str.toC
《劍指offer》系列 陣列中只出現一次的數字(Java)
連結 牛客:陣列中只出現一次的數字 題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 思路 參考:陣列中只出現一次的數 我們從頭到位對陣列做異或運算,得到的最終結果應該是兩個不同數字做異或運算後的值。因為兩個數字