Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonですべての値を同じに変換するために必要な操作の数を数えるプログラム?


整数numsのリストを指定すると、次の操作を実行できます。numsで最大の数値を選択し、それを2番目に大きい数値に変換します。リスト内のすべての整数を同じにするために必要な操作の最小数を返します。

したがって、入力がnums =[5、9、2]の場合、出力は3になります。最初に9を選択し、次に5にします。したがって、arrayは[5、5、2]、5を選択して2を作成します。 、[5、2、2]、もう一度5を選択し、2、[2、2、2]に変換します。

これを解決するために、次の手順に従います

  • vals:=一意の文字のリストをnumsで並べ替える

  • vtoi:=valsのすべての値vをキーとして、それらのインデックスiを値としてマップ

  • すべてのvのvtoi[v]の合計をnumsで返します

理解を深めるために、次の実装を見てみましょう

class Solution:
   def solve(self, nums):
      vals = sorted(set(nums))
      vtoi = {v: i for i, v in enumerate(vals)}
      return sum(vtoi[v] for v in nums)

ob = Solution()
nums = [5, 9, 2]
print(ob.solve(nums))

入力

[5, 9, 2]

出力

3

  1. Pythonですべての配列要素を等しくするために必要な操作の数

    要素の配列を指定しました。要素を1ずつインクリメントして、すべてを等しくする必要があります。各ステップでn-1個の要素をインクリメントできます。私たちの目標は、すべての配列要素を等しくするために必要な操作の総数を計算することです。 たとえば、リスト[1、2、3]を取得する場合、すべての要素を等しくするために3つの操作が必要でした。この問題の1つの解決策はです。各ステップで最上位の数字を見つけ、残りの要素を1ずつ増やします。コードを書いてみましょう。 例 def main():    # intializing the array    arr = [1,

  2. 1からnまでのすべての数の合計セットビットをカウントするPythonプログラム。

    正の整数nが与えられると、その2進表現に変更し、設定されたビットの総数をカウントします。 例 Input : n=3 Output : 4 アルゴリズム Step 1: Input a positive integer data. Step 2: then convert it to binary form. Step 3: initialize the variable s = 0. Step 4: traverse every element and add. Step 5: display sum. サンプルコード # Python program to count set bits #