leetcode1310

1  クラスソリューション:
 2      DEF xorQueries(自己、ARR:' 一覧の[int] '、クエリ:' リスト[リストの[int] ') - > ' リスト[INT] ' 3          N = LEN(ARR)
 4          prefixsum = [ARR [0] * N
 5つの          RES = []
 6          ための I における範囲(1 、N):
 7              prefixsum [I] = prefixsum [I-1] ^ ARR [i]は
 8  
9          M = LEN(クエリ)
 10          以下のための範囲(M):
 11が              始まる= クエリ[I] [0]
 12              端=クエリ[I] [1 ]
 13              であれば開始== 0:
 14                  CUR = prefixsum [END]
 15              16                  CUR = prefixsum [END] ^ prefixsum [BEGIN-1 ]
 17              res.append(CUR)
 18の         リターン解像度を

アルゴリズム的思考:ビット・コンピューティング。排他的論理和演算の性質があります。x ^ x = 0の、かつx ^ 0 = X。

チェン氏の前にXORアレイprefixsum順。

閉区間[開始、終了]のために、唯一のXORに対応する境界位置prefixsumを使用する必要があります。

== 0を開始する場合、計算結果はprefixsum [終了]です。

prefixsum [BEGIN-1] - > 0を開始する場合、活性化prefixsum [終了]を算出します。

おすすめ

転載: www.cnblogs.com/asenyang/p/12180819.html