Leetcode 136 只出現一次的數字

2021-10-02 15:58:55 字數 755 閱讀 8047

心情複雜,除了位運算??,什麼也說不出來。

一開始想用雜湊表,後來想排序,怎麼都不能滿足要求的複雜度。

後來真理大門開啟了——異或

a^b^a=a,將所有元素進行異或運算,剩下的就是所求。

位運算符號符號

名稱用法&與

兩個位都為1時,結果才為1.|或

兩個位都為0時,結果才為0.^異或

兩個位相同為0,相異為1.~取反

0變1,1變0.

<<

左移各二進位全部左移若干位,高位丟棄,低位補0.

>>

右移各二進位全部右移若干位,對無符號數,高位補0,有符號數,各編譯器不同.

位運算**

int

singlenumber

(vector<

int>

& nums)

return ans;

}

又試了一波排序執行時間從8 upup到了24ms

int

singlenumber

(vector<

int>

& nums)

return nums[nums.

size()

-1];

}

leetcode 136 只出現一次的數字

給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,1 輸出 1示例 2 輸入 4,1,2,1,2 輸出 4 class solution return r...

Leetcode 136 只出現一次的數字

給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,1 輸出 1 示例 2 輸入 4,1,2,1,2 輸出 4 一般這種不使用額外空間,時間複雜度低的,用按...

LeetCode 136 只出現一次的數字

136.只出現一次的數字 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例1 輸入 2,2,1 輸出 1 示例2 輸入 4,1,2,1,2 輸出 4 使用集合中沒有重複元素...