# 136 Single Number
實際運用到 bitwise operators 的 ^,值得複習 !!
Given a non-empty 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?
input: 一個雙倍出現的數字 + 單獨出現的數字組成陣列
output: 找出那個落單的Example 1:
Input: [2,2,1]
Output: 1
Example 2:
Input: [4,1,2,1,2]
Output: 4
*/
/**
* @param {number[]} nums
* @return {number}
*/
var singleNumber = function(nums) {}怎麼解
第一想法就是先排序後再找旁邊的是不是跟你一樣,不一樣就是落單的數字了。但後來看這篇 發現用 bitwise operators 可以超快。應用到 ^ 的特性。這題說是兩兩數字出現所以很適合用
^ (XOR)
bit1 ^ bit2 : 當兩個位元一樣時回傳0,不一樣時回傳1。
交换律:a ^ b ^ c <=> a ^ c ^ b
任何数于0异或为任何数 0 ^ n => n
相同的数可以等於 0: n ^ n => 0
Last updated
Was this helpful?