只出现一次的数字
只出现一次的数字
https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x21ib6/
https://leetcode-cn.com/problems/single-number/
哈希表
使用哈希表,如果放入元素时候已经有了,就删掉它。最后剩下的就是只出现一次的元素。时间复杂度是O(n)
,空间复杂度也是O(n)
。
1 |
|
位运算
数字按位进行异或运算。基于以下几点事实:
- 任何数和自己做异或运算,结果为 0,即 a ⊕ a = 0 。
- 任何数和 0 做异或运算,结果还是自己,即 a ⊕ 0 = 0 。
- 异或运算中,满足交换律和结合律,a ⊕ b ⊕ a = b ⊕ a ⊕ a = b ⊕ ( a ⊕ a ) = b ⊕ 0 = b 。
1 |
|
C++的位和逻辑运算操作符
运算 | 位运算操作符 (bitwise) | 逻辑运算符(logical) |
---|---|---|
AND | & | && |
OR | | | || |
XOR | ^ | |
NOT | ~ | ! |
left shift | << | |
right shift | >> |
参考链接:https://www.geeksforgeeks.org/bitwise-operators-in-c-cpp/