zoukankan      html  css  js  c++  java
  • 【leetcode】1442. Count Triplets That Can Form Two Arrays of Equal XOR

    题目如下:

    Given an array of integers arr.

    We want to select three indices ij and k where (0 <= i < j <= k < arr.length).

    Let's define a and b as follows:

    • a = arr[i] ^ arr[i + 1] ^ ... ^ arr[j - 1]
    • b = arr[j] ^ arr[j + 1] ^ ... ^ arr[k]

    Note that ^ denotes the bitwise-xor operation.

    Return the number of triplets (ij and k) Where a == b.

    Example 1:

    Input: arr = [2,3,1,6,7]
    Output: 4
    Explanation: The triplets are (0,1,2), (0,2,2), (2,3,4) and (2,4,4)
    

    Example 2:

    Input: arr = [1,1,1,1,1]
    Output: 10
    

    Example 3:

    Input: arr = [2,3]
    Output: 0
    

    Example 4:

    Input: arr = [1,3,5,7,9]
    Output: 3
    

    Example 5:

    Input: arr = [7,11,12,9,5,2,7,17,22]
    Output: 8

    Constraints:

    • 1 <= arr.length <= 300
    • 1 <= arr[i] <= 10^8

    解题思路:本题的关键是找出j,j的取值范围是1~len(arr)-1。对于任意的j,首先计算出左边XOR值出现的次数,然后再依次计算右边的XOR值,再去左边的XOR里面找出相同的值出现了几次即可。

    代码如下:

    class Solution(object):
        def countTriplets(self, arr):
            """
            :type arr: List[int]
            :rtype: int
            """
            res = 0
            for i in range(1,len(arr)):
                dic_left = {}
                value = arr[i-1]
                dic_left[value] = 1
                for j in range(i-2,-1,-1):
                    value = value ^ arr[j]
                    dic_left[value] = dic_left.setdefault(value,0) + 1
                value = None
                for j in range(i,len(arr)):
                    if value == None:value = arr[j]
                    else:value = value ^ arr[j]
                    if value in dic_left:
                        res += dic_left[value]
            return res
  • 相关阅读:
    STM32学习笔记之__attribute__ ((at())绝对定位分析
    CRC 自动判断大端 小端
    AT命令控制上网 PDP
    PPP PDP 及GPRS
    Renesas CAT CONFIG
    AT指令(二)
    字节对齐问题
    IntelliJ Idea 常用快捷键列表
    solr6.6 导入 文本(txt/json/xml/csv)文件
    solr6.6 导入 pdf/doc/txt/json/csv/xml文件
  • 原文地址:https://www.cnblogs.com/seyjs/p/13041630.html
Copyright © 2011-2022 走看看