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

Pythonで中央値の絶対差が最小になるように数値のリストを分割するプログラム


numsと呼ばれる数値のリストがあるとすると、それを同じサイズの2つの部分に分割する必要があります。各リストの中央値の絶対差は可能な限り小さく、この差を見つける必要があります。ここでは、nums/2の長さが奇数になることに注意する必要があります。

したがって、入力が[2、10、8、5、4、7]の場合、出力は2になります。これは、[2,5,10]と[4,7,8]のような2つのリストを作成できるためです。 、その場合、中央値は5と7であり、それらの差は2です。

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

  • リスト番号を並べ替える
  • m:=nums/2のサイズの商
  • return | nums [m] --nums [m-1] |

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

class Solution:
   def solve(self, nums):
      nums.sort()
      m = len(nums)//2
      return abs(nums[m] - nums[m-1])
ob = Solution()
print(ob.solve([2, 10, 8, 5, 4, 7]))

入力

[2, 10, 8, 5, 4, 7]

出力

2

  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つはリスト要素を反復処理します。すべての反復で、要素が類似しているかどうかを確認します。 そうでない場合は、絶対差を見つけて、それ