Pythonで要素の合計が2の累乗であるインデックスペアをカウントするプログラム
numsという番号のリストがあるとします。インデックスペアの数i、jを見つける必要があります。ここで、i
したがって、入力がnums =[1、2、6、3、5]のようである場合、(6、2)のような3つのペアの合計があるため、出力は3になります。合計は8、(5、3) :合計は8、(1、3)合計は4
これを解決するには、次の手順に従います-
-
res:=0
-
c:=に存在する各要素の頻度を含むマップ
-
numsのxごとに、実行します
-
0から31の範囲のjの場合、実行
-
res:=res + c [(2 ^ j)-x]
-
-
c [x]:=c [x] + 1
-
-
解像度を返す
例
理解を深めるために、次の実装を見てみましょう
from collections import Counter def solve(nums): res, c = 0, Counter() for x in nums: for j in range(32): res += c[(1 << j) - x] c[x] += 1 return res nums = [1, 2, 6, 3, 5] print(solve(nums))
入力
[1, 2, 6, 3, 5]
出力
3
-
数値のリストから有効なペアの数をカウントするプログラム。Pythonではペアの合計が奇数です。
正の数numsのリストがあるとすると、有効なインデックスのペア(i、j)の数を見つける必要があります。ここで、i
-
Pythonで奇数桁を含むリスト内の要素の数をカウントするプログラム
numsと呼ばれる正の数のリストがあるとすると、奇数の桁を持つ要素の数を見つける必要があります。 したがって、入力が[1、300、12、10、3、51236、1245]の場合、出力は4になります。 これを解決するには、次の手順に従います- c:=0 0からnumsのサイズの範囲のiの場合は、 s:=numsの桁数[i] sが奇数の場合、 c:=c + 1 return c 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve(self, nums): &n