力扣,https://leetcode.cn/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-lcof/description/
題目:一個整型數組nums里除兩個數字之外,其他數字都出現了兩次。請寫程序找出這兩個只出現一次的數字。要求時間復雜度是O(n),空間復雜度是O(1)。
注意:相同的數異或為0,不同的異或為1。0和任何數異或等于這個數本身。
思路:
class Solution {public int[] sockCollocation(int[] sockets) {int x = 0, y = 0, n = 0, m = 1;for (int val : sockets) {n ^= val;}while ((n & m) == 0) {m <<= 1;}for (int val : sockets) {if ((val & m) == 0) {x ^= val;} else {y ^= val;}}return new int[] {x, y};}
}