空でない整数の配列を指定すると、1回だけ表示されるものを除いて、各要素は2回表示されます。1回だけ表示される要素を見つけます。【LeetCodeHot100】

最もホットな質問100の質問136:

最初にコードを貼り付けます。

class Solution {
    public int singleNumber(int[] nums) {
        //异或
        int ans = 0;
        for(int i = 0; i < nums.length;i++){
            ans = ans ^ nums[i];
        }
        return ans;

    }
}

問題解決のアイデア:

この問題を解決するには、XORを使用する必要があります。XORアルゴリズムは次のように準拠しています。

したがって、配列の1つの要素のみが単一で、他の要素が2回出現する場合、XOR演算の可換法則と結合率に準拠します。例:1 ^ 2 ^ 2 ^ 3 ^ 3 ^ 4 ^ 4 = 1; 2 ^ 1 ^ 3 ^ 2 ^ 3 = 1;

したがって、配列を1回トラバースするだけで、毎回この数をXORするだけで、ソリューションを完成させることができます。

おすすめ

転載: blog.csdn.net/weixin_56960711/article/details/123340496