Pythonのブーメランの数
したがって、入力が[[0,0]、[1,0]、[2,0]]の場合、2つのブーメランは[[1,0]、[0,0]であるため、出力は2になります。 、[2,0]]および[[1,0]、[2,0]、[0,0]]。
これを解決するには、次の手順に従います-
-
counter_of_boomerangs:=0
-
ポイント配列のpoint_1ごとに、次のようにします
-
x1、y1 =point_1
-
distance_count_dict
というマップを定義します -
ポイント配列のpoint_2ごとに、次のようにします
-
x2、y2 =point_2
-
diff_x:=x2-x1
-
diff_y:=y2-y1
-
dist:=diff_x ^ 2 + diff_y ^ 2
-
distance_count_dict [dist]:=distance_count_dict [dist] + 1
-
-
distance_count_dictの各dに対して-
-
n:=distance_count_dict [d]
-
counter_of_boomerangs:=counter_of_boomerangs + n *(n-1)
-
-
-
counter_of_boomerangsを返す
例
理解を深めるために、次の実装を見てみましょう-
from collections import defaultdict class Solution: def numberOfBoomerangs(self, points): counter_of_boomerangs = 0 for point_1 in points: x1, y1 = point_1 distance_count_dict = defaultdict( int ) for point_2 in points: x2, y2 = point_2 diff_x = x2-x1 diff_y = y2-y1 dist = diff_x ** 2 + diff_y ** 2 distance_count_dict[ dist ] += 1 for d in distance_count_dict: n = distance_count_dict[d] counter_of_boomerangs += n * (n-1) return counter_of_boomerangs ob = Solution() print(ob.numberOfBoomerangs([[0,0],[1,0],[2,0]]))
入力
[[0,0],[1,0],[2,0]]
出力
0
-
Pythonの単一の数値
配列Aがあるとします。この配列には、2回出現する多数の数値があります。一度に見つけることができる要素は1つだけです。その配列からその要素を見つける必要があります。 A =[1、1、5、3、2、5、2]とすると、出力は3になります。各数値が2回あるため、XORを実行してその要素をキャンセルできます。 y XOR y =0がわかっているからです これを解決するために、次の手順に従います。 1つの変数res=0を取ります 配列Aの各要素eについて、プリフォームres =res XOR e return res 例 理解を深めるために、次の実装を見てみましょう- class Soluti
-
Pythonの乱数
説明 Pythonには、乱数を生成するための関数がほとんどありません。これらは、生成するために乱数が必要な多くのゲームや宝くじなどで使用できます。 乱数を生成する関数がいくつかあります- choice() この関数を使用して、数値のコレクションから1つの乱数を生成できます。 例 print (A random number from list : ,end=) print (random.choice([1, 4, 6, 100, 31])) 出力 A random number from list : 100 randrange(beg、end、step) この関数は