找出單身狗:有2n+1個數,其中有n個數出現過兩次,找出其中只出現一次的數

在這裏插入圖片描述
任何數異或0值不變,任何數與自己異或值爲0。
因此一個數兩次異或同一個數,值不變。

    /**
     * 任何數異或0值不變,任何數與自己異或值爲0。
     * 因此一個數兩次異或同一個數,值不變。
     */
    public void findSingle() {
        int[] arr = {1, 2, 3, 4, 5, 4, 3, 2, 1};
        int t = arr[0];
        for (int i = 1; i < arr.length; i++) {
            t ^= arr[i];
        }
        System.out.println("single  = " + t);
    }

打印結果:single = 5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章