Pythonで3つの数値をゼロにする
3つの数字があるとしましょう。タスクは、これらすべての数値を「0」にするための最適なステップの総数をカウントすることです。
例
入力-1:
a = 4 b = 4 c = 6
出力:
7
説明:
すべての数値を「0」にするための最適なステップの総数は、
です。(4、4、6)
1番目と2番目の数値から「1」を削除する=(3、3、6)
1番目と3番目の数値から「1」を削除する=(2、3、5)
1番目と3番目の数値から「1」を削除する=(1、3、4)
1番目と3番目の数値から「1」を削除する=(0、3、3)
2番目と3番目の数値から「1」を削除する=(0、2、2)
2番目と3番目の数値から「1」を削除する=(0、1、1)
2番目と3番目の数値から「1」を削除する=(0、0、0)
したがって、すべての数値をゼロにするための合計ステップ数は「7」です
この問題を解決するためのアプローチ
この特定の問題を解決するために、これら2つの数値の合計が最後の数値よりも大きくなるように、任意の2つの数値から「1」を削除します。ゼロにするための最小ステップ数を見つけるために、最小ステップ数を計算します。
- 入力として3つの数字を取ります。
- sort を使用して、番号を昇順で並べ替えます
- 2つの数値の合計が3番目の数値よりも小さいかどうかを確認してから、合計を返します。
- 毎回、任意の2つの数値から「1」を削除するため、すべての数値を「0」にするために(n1 + n2 + n3)/2ステップかかります。
例
def maxScore(a: int, b: int, c: int): a, b, c = sorted((a, b, c)) if a + b < c: return a + b return (a + b + c)//2 a=4 b=4 c=6 print(maxScore(a,b,c))
上記のコードを実行すると、次のように出力が生成されます
出力
7
与えられた入力a=4、b =4、c =6の場合、すべての数値を「0」にするために7つのステップが必要です。したがって、プログラムは出力として7を返します。
-
Pythonの3の力
番号nがあるとします。数が3の累乗であるかどうかを確認する必要があります。したがって、数値がn =27、つまり3の累乗のような場合、結果はtrueになり、n =15の場合、falseになります。 これを解決するには、次の手順に従います- これを解決するために対数を使用します [log10(n)/ log10(3)] mod 1 ==0の場合、3の累乗になります。それ以外の場合は、そうではありません 例 理解を深めるために、次の実装を見てみましょう- class Solution(object): def isPowerOfThree(self, n): &n
-
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