LeetCode 1442. 形成两个异或相等数组的三元组数目

Posted 数据结构和算法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1442. 形成两个异或相等数组的三元组数目相关的知识,希望对你有一定的参考价值。

截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载
下载链接https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ
提取码:6666



也就是说如果数组中连续n个元素的异或结果是0,那么可能的组合就有n-1种。搞懂了上面的分析过程,代码就简单多了。

来看下代码

public int countTriplets(int[] arr) {
    //所有可能的组合
    int total = 0;
    int length = arr.length;
    //判断数组从i到j的元素异或结果是否是0
    for (int i = 0; i < length - 1; i++) {
        int xor = arr[i];
        for (int j = i + 1; j < length; j++) {
            xor ^= arr[j];
            //如果数组从i到j的异或结果是0,那么他们
            //可能的组合就是j-i
            if (xor == 0) {
                total += (j - i);
            }
        }
    }
    return total;
}

以上是关于LeetCode 1442. 形成两个异或相等数组的三元组数目的主要内容,如果未能解决你的问题,请参考以下文章

算法leetcode1442. 形成两个异或相等数组的三元组数目(rust真是好用)

算法leetcode1442. 形成两个异或相等数组的三元组数目(rust真是好用)

leetcode1442. 形成两个异或相等数组的三元组数目

LeetCode 1442. 形成两个异或相等数组的三元组数目

LeetCode 1442. 形成两个异或相等数组的三元组数目 Java

LeetCode 1442. 形成两个异或相等数组的三元组数目 Java