1. 程式人生 > 其它 >CentOS安裝zip及用法

CentOS安裝zip及用法

連結

給定一個數組,包含從 1 到 N 所有的整數,但其中缺了兩個數字。你能在 O(N) 時間內只用 O(1) 的空間找到它們嗎?

以任意順序返回這兩個數字均可。

class Solution {
    private int lowbit(int x) {
        return x & (-x);
    }

    public int[] missingTwo(int[] nums) {
        int n = nums.length + 2;
        int all = 0;
        for (int num : nums) {
            all ^= num;
        }
        for (int i = 1; i <= n; ++i) {
            all ^= i;
        }
        int lowbit = lowbit(all);
        int one = 0, two = 0;
        for (int num : nums) {
            if ((num & lowbit) != 0) {
                one ^= num;
            } else {
                two ^= num;
            }
        }
        for (int i = 1; i <= n; ++i) {
            if ((i & lowbit) != 0) {
                one ^= i;
            } else {
                two ^= i;
            }
        }
        return new int[]{one, two};
    }
}
心之所向,素履以往 生如逆旅,一葦以航