位運算-LeetCode136-只出現一次的數字
題目
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。
說明:
你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?
示例 1:
輸入: [2,2,1]
輸出: 1
示例 2:
輸入: [4,1,2,1,2]
輸出: 4
思路
限制線性時間複雜度且不使用額外空間。採用位運算異或^。
交換律 a^b=b^a
結合律 (a^b)^c=a^(b^c)
與本身異或等於0 a^a=0
與0異或等於本身 a^0=a
例如
4^1^2^1^2=4^1^1^2^2=4^(1^1)^(2^2)=4^0^0=4。
程式碼
class Solution {
public int singleNumber(int[] nums) {
int res=nums[0];
for(int i=1;i<nums.length;i++){
res=res^nums[i];
}
return res;
}
}
關鍵
位運算異或。
相關推薦
位運算-LeetCode136-只出現一次的數字
題目 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,2,1,2] 輸出:
位運算之只出現一次的的數字
******位運算系列之陣列中只出現一次的數字****** //題目(1):在一個數組中只有一個數字出現一次,其他數字都是成對出現的!讓你找出這個只出現一次的數字, //其實,這也叫缺失的數字,用
【Leetcode136-只出現一次的數字 Single Number】(c語言)
目錄 測試單元 題目分析 優化版 只出現一次的數字 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應
LeetCode136. 只出現一次的數字
題目 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4
中金所面試題目之找出只出現一次數字
題目:n個int型數字,兩兩重複,只有一個是出現一次,找出它。 思路:^位異或操作,具有如下性質:1.交換律與結合律。2.自己與自己異或是0。3.自己與0異或是自己 程式碼: #include <
位運算 -- 只出現一次的的數字
異或的兩個值'相同為假,不同為真'。 交換兩個整數的值時可以不用第三個引數 a = a ^ b ^ a = b b = b ^ a ^ b = a 一個只出現一次的數字。 一個整型數組裡除了一個數字之外,其他的數字都出現了偶數次。請寫程式找出這個只出現一次的數字。 public int oneNum
LeetCode-136.只出現一次的數字(相關話題:位運算)
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,2,1,2] 輸出
【位運算】找出陣列中,只出現一次的兩個數字
題目: 一個整型數組裡除了兩個數字之外,其他的數字都出現了兩次,請寫程式找出這兩個出現一次的數字。要求時間複雜度是O(n),空間複雜度是O(1). 分析: 由於限制了複雜度,所以要用異或運算來解,什麼是異或? 首先,計算機1個位元組是8位(1Byte=8bit);其次,異
lc 只出現一次的數字 (異或運算)
for 出現一次 ati 時間 single 使用 val ret 一次 給定一個非空整數數組,除了某個元素只出現一次以外,其余每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的算法應該具有線性時間復雜度。 你可以不使用額外空間來實現嗎? 異或解法: p
leetcode136 python只出現一次的數字
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明:你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?示例 1:輸入: [2,2,1] 輸出: 1 示例 2:輸入: [4,1,2,1,2] 輸出: 4py
Python按位異或運算子^應用案例一則:查詢只出現一次的數字
問題描述:有一個整數列表,裡面有一個數字只出現了一次,而其他數字都出現了4次,要求查詢這個只出現了一次的數字。 思路要點:一個數字和自己異或一次會變成0。 參考程式碼: import random def onlyYou(lst): r = lst[0] for item in lst[1
數組中只出現一次的數字
java題目:一個整型數組裏除了兩個數字之外,其他的數字都出現了兩次。請寫程序找出這兩個只出現一次的數字。import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; //nu
只出現一次的數字
chang for result solution pan 一個 list enum res 給定一個非空整數數組,除了某個元素只出現一次以外,其余每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的算法應該具有線性時間復雜度。 你可以不使用額外空間來實現嗎? 示
Leetcode-探索 | 只出現一次的數字
求和 時空 技巧 做的 計算 輸出 奇技淫巧 leetcode bsp 給定一個非空整數數組,除了某個元素只出現一次以外,其余每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的算法應該具有線性時間復雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2
第十個算法-只出現一次的數字
出現 返回 ont 感覺 single 其余 lean 出現一次 運算符 給定一個非空整數數組,除了某個元素只出現一次以外,其余每個元素均出現兩次。找出那個只出現了一次的元素。 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,2,1,2] 輸
面試題:數組中只出現一次的數字
new ++ array ear style 哈希表 else 兩個 個數 題目描述:一個整型數組裏除了兩個數字之外,其他的數字都出現了偶數次。請寫程序找出這兩個只出現一次的數字。 方法1:哈希表 //num1,num2分別為長度為1的數組。傳出參數 //將num1[0]
數組中只出現一次的數字(java實現)
num 整型 根據 長度 問題 程序 oid [] 情況 問題描述 一個整型數組裏除了兩個數字之外,其他的數字都出現了偶數次。請寫程序找出這兩個只出現一次的數字。 解題思路 如果數組中只有一個數字出現奇數次,則將數組中所有的數字做異或可得該數字。 數組中有兩個數
137. 只出現一次的數字 II
clas 進制 數字 bsp 代碼 for turn color style 題目 給定一個非空整數數組,除了某個元素只出現一次以外,其余每個元素均出現了三次。找出那個只出現了一次的元素。 說明: 你的算法應該具有線性時間復雜度。 你可以不使用額外空間來實現嗎? 示例 1:
LeetCode--136--只出現一次的數字
實現 額外 比較 pre 整數 etc -- tco tro 問題描述: 給定一個非空整數數組,除了某個元素只出現一次以外,其余每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的算法應該具有線性時間復雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [
劍指offer之陣列中只出現一次的數字
1.題目描述 一個整型數組裡除了兩個數字之外,其他的數字都出現了偶數次。請寫程式找出這兩個只出現一次的數字。 2.問題分析 方法一: 可以使用map,統計每個數出現的次數,之後對兩個出現一次的數進行賦值 方法二: 這裡就數字的特性,首先我們需要知