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

Pythonのソートされたリスト内のすべてのペアの絶対差の合計を見つけるプログラム


numsと呼ばれるソートされた数値のリストがあるとすると、指定されたリスト内の数値のすべてのペア間の絶対差の合計を見つける必要があります。ここでは、(i、j)と(j、i)が異なるペアであると見なします。答えが非常に大きい場合は、結果を10 ^ 9+7で変更します。

したがって、入力がnums =[2、4、8]のような場合、出力は| 2--4|のように24になります。 + | 2-8 | + | 4-2 | + | 4-8 | + | 8-2 | + |8-4|。

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

  • m =10 ^ 9 + 7

  • 合計:=0

  • 0からnumsのサイズの範囲のiの場合、実行します

    • 合計:=合計+(i * nums [i]-(numsのサイズ-1 --i)* nums [i])mod m

  • return(2 * total)mod m

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

class Solution:
   def solve(self, nums):
      m = 10**9 + 7
      total = 0
      for i in range(len(nums)):
         total += (i*nums[i] - (len(nums) - 1 - i)*nums[i]) % m
      return (2*total) % m
ob = Solution()
nums = [2, 4, 8]
print(ob.solve(nums))

入力

[2, 4, 8]

出力

24

  1. 配列の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '

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

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