java的異或運算符(^)


異或運算(^)

異或是一個數學運算符,應用於邏輯運算。
異或運算是一種二進制運算:

1^1=0
0^0=0
1^0=1
0^1=1

異或運算法則

  • a ^ b = b ^ a
  • a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c
  • d = a ^ b ^ c 可以推出 a = d ^ b ^ c
  • a ^ b ^ a = b

算法應用

有序數組中的單一元素

給你一個僅由整數組成的有序數組,其中每個元素都會出現兩次,唯有一個數只會出現一次。
請你找出並返回只出現一次的那個數。

解答:
相同的兩個數異或=0,異或運算符又具有交換性。
我們可以通過將數組中的所有整數進行異或運算,由於異或的性質,最后得出的值即為只出現一次的那個數
class Solution {
    public int singleNonDuplicate(int[] nums) {
        int result = nums[0];
        for (int i = 1; i < nums.length; i++) {
            result = result ^ nums[i];
        }
        return result;
    }
}

小Tips

偶數+1=奇數-1=整數^1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM