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

Pythonで要素を最大3回更新した後、最大値と最小値の最小差を見つけるプログラム


numsという数値のリストがあると仮定し、要素を任意の値に更新できる操作について考えてみましょう。このような操作は最大で3つ実行できますが、結果として得られる最大値と最小値の差をnumsで見つける必要があります。

したがって、入力がnums =[2、3、4、5、6、7]の場合、リストを[4、3、4、5、4、4]に変更できるため、出力は2になります。次に、5-3=2です。

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

  • numsのサイズが<=4の場合、
    • 0を返す
  • n:=numsのサイズ
  • リスト番号を並べ替える
  • 0から3の範囲のすべてのiについてnums[n-4+i]-nums[i]の差の最小値を返します

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

class Solution:
   def solve(self, nums):
      if len(nums) <= 4:
         return 0
      nums.sort()
      return min(nums[-4 + i] - nums[i] for i in range(4))
ob = Solution()
nums = [2, 3, 4, 5, 6, 7] print(ob.solve(nums))

入力

[2, 3, 4, 5, 6, 7]

出力

2

  1. 重複する要素を見つけて、Pythonでそれらの最後の出現を削除するプログラム

    番号Aのリストがあるとすると、重複する番号をすべて見つけて、最後に出現した番号を削除する必要があります。 したがって、入力が[10、30、40、10、30、50]の場合、出力は[10、30、40、50]になります。 これを解決するには、次の手順に従います- sawed:=新しい地図 d:=新しい地図 0からnumsのサイズの範囲のiの場合は、 nums [i]がdにない場合、 d [nums [i]]:=1 それ以外の場合、 d [nums [i]]:=d [nums [i]] + 1 i:=0 i

  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()を定義します。これはターゲットにな