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

PythonでK要素を削除した後に最小振幅を見つけるプログラム


numsと呼ばれる数があり、別の値kがあるとします。 numsからk個の要素を削除する場合は、(numsの最大値-numsの最小値)の最小値を見つけます。

したがって、入力がnums =[4、10、3、2、8、9] k =3のような場合、出力は2になります。これは、10、8、および9を削除すると、最大が4、最小が2になるためです。したがって、差は2です。

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

  • リスト番号を並べ替える

  • p:=numsのサイズ-k

  • m:=(numsの最後の要素)-nums [0]

  • 0からnumsのサイズまでの範囲のiの場合-p、do

    • nums [i + p --1] --nums [i]

      • m:=nums [i + p --1]-nums [i]

  • mを返す

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

def solve(nums, k):
   nums = sorted(nums)
   p = len(nums) - k
   m = nums[-1] - nums[0]
   for i in range(0, len(nums) - p + 1):
      if nums[i + p - 1] - nums[i] < m:
         m = nums[i + p - 1] - nums[i]
   return m

nums = [10, 4, 3, 2, 9, 8]
k = 3
print(solve(nums, k))

入力

[10, 4, 3, 2, 9, 8], 3

出力

2

  1. Pythonでマージした後も、最小数の色を見つけるプログラムが残っています

    色のリスト(R、G、B)があるとします。これで、2つの異なる色が隣り合っている場合、それらは3番目の色の単一の色のアイテムに変換できます。そのような変換の可能なシーケンスの後に残っているそれらの最小数を見つける必要があります。 したがって、入力がcolors =[G、 R、 G、 B、 R]の場合、以下のように変換できるため、出力は1になります- これを解決するには、次の手順に従います- n:=色のサイズ 色に異なる色が1つしかない場合は、 return n n <=1の場合、 return n x:=0 d:=キーと値のペアを持つマップ{( R、1)、(

  2. Pythonでリスト要素をイコライズするための最小総コストを見つけるプログラム

    numsとcostsという2つの数値リストがあるとします。ここで、コストコスト[i]のnums[i]を増減できる操作があると考えてください。これらの操作はいくつでも実行でき、すべての要素をnumsで等しくしたいと考えています。必要な最小の総コストを見つける必要があります。 したがって、入力がnums =[3、2、4] cost =[1、10、2]のようである場合、1のコストで数値3を2に減らすことができるかのように、出力は5になります。それぞれ2のコストで、4を2回デクリメントできます。 これを解決するには、次の手順に従います- 関数helper()を定義します。これはターゲットにな