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

Pythonで最大アイテムと最小アイテムの差が最小になるkサイズのリストを見つけるプログラム


numsと整数kという数値のリストがあるとすると、numsから要素を選択して、リスト内の最大の整数と最小の整数の差ができるだけ小さくなるように、サイズkのリストを作成する必要があります。そして、この違いを返します。

したがって、入力がnums =[3、11、6、2、9]、k =3の場合、作成できる最良のリストは[2、3、6]であるため、出力は4になります。

>

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

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

  • ls:=新しいリスト

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

    • lsの最後にnums[i+ k --1]--nums[i]を挿入します

  • 最小のlsを返す

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

class Solution:
   def solve(self, nums, k):
      nums.sort()
      ls = []
      for i in range(len(nums) - k + 1):
         ls.append(nums[i + k - 1] - nums[i])
      return min(ls)
ob = Solution()
nums = [3, 11, 6, 2, 9]
k = 3
print(ob.solve(nums, k))

入力

[3, 11, 6, 2, 9],3

出力

4

  1. リスト内の最小数を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal

  2. リスト内のすべてのペア間の絶対差の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 リスト入力が与えられた場合、リスト内のすべてのペア間の絶対差の合計を見つける必要があります。 列挙() メソッドは、反復可能オブジェクトにカウンターを追加し、それを列挙オブジェクトタイプの形式で返します。 この方法では、絶対差を含むリスト「diffs」があります。 2つの変数が初期化された2つのループを使用します。 1つはカウンターを反復処理し、もう1つはリスト要素を反復処理します。すべての反復で、要素が類似しているかどうかを確認します。 そうでない場合は、絶対差を見つけて、それ