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. 形成两个异或相等数组的三元组数目