在本文中,我们将讨论计算给定的唯一数字数组中唯一三元组(x,y,z)的数量,其中它们的XOR为0。因此,三元组应该是唯一的,其中所有三个元素都是唯一的,并且会计算所有例如三胞胎的组合-
Input : arr[ ] = { 5, 6, 7, 1, 3 } Output : 2 Explanation : triplets are { 5, 6, 3 } and { 6, 7, 1 } whose XOR is zero. Input : arr[ ] = { 3, 6, 8, 1, 5, 4 , 12} Output : 3 Explanation : Triplets are { 3, 6, 5 }, { 1, 5, 4 } and { 4, 8, 12 } whose XOR is zero.我们知道相同值的异或总是为零。所以我们找到唯一的三元组,可以应用一种乐观的方法,即从数组中找到两个值的异或并存储结果,并在数组中搜索与结果相等的值。此外,结果的值不应成对等于任何值。寻找
创建一组unordered_set<int>值;存储给定数组的唯一编号。
使用for()循环在使用values.insert(arr[i])的集合中插入值。
使用两个嵌套循环遍历所有对并计算它们的XOR值。
然后,搜索数组中的XOR值,如果该值是在数组中而不是成对找到的,则增加计数。
将结果存储为count/3将计算三元组的三个组合,我们需要唯一的三元组。
这篇文章讨论了寻找XOR值为0的三元组的数量;我们讨论了一种寻找独特三胞胎的乐观方法。我们还讨论了C++程序来解决这个问题。但是,我们可以使用任何其他编程语言(如Java、C、Python等)编写此程序。我们希望本文对您有所帮助。