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

Python –Kサイズのサブアレイの最大合計で行列を並べ替える


kサイズのサブアレイの最大合計で行列を並べ替える必要がある場合は、「amx」メソッドと「sum」メソッドを使用してリストを反復処理するメソッドが定義されます。

以下は同じもののデモンストレーションです

def sort_marix_K(my_list):
   return max(sum(my_list[index: index + K]) for index in range(len(my_list) - K))

my_list = [[51, 23, 4, 24, 1], [45, 6, 26, 36, 5], [56, 16, 6, 36, 8], [5, 4, 36, 26, 26]]

print("The list is :")
print(my_list)

K = 4
print("The value of K is ")
print(K)
my_list.sort(key=sort_marix_K)

print("The resultant list is :")
print(my_list)

出力

The list is :
[[51, 23, 4, 24, 1], [45, 6, 26, 36, 5], [56, 16, 6, 36, 8], [5, 4, 36, 26, 26]]
The value of K is
4
The resultant list is :
[[5, 4, 36, 26, 26], [51, 23, 4, 24, 1], [45, 6, 26, 36, 5], [56, 16, 6, 36, 8]]

説明

  • リストをパラメータとして受け取る「sort_matrix_K」という名前のメソッドが定義されています。

  • リストを反復処理してインデックスを決定し、特定のインデックスの合計を取得して、これらの値の最大値を取得します。

  • これは出力として返されます。

  • メソッドの外部では、リストのリストが定義され、コンソールに表示されます。

  • Kの値が定義され、コンソールに表示されます。

  • リストは、以前に定義されたメソッドに基づいてソートされます。

  • 出力はコンソールに表示されます。


  1. Python-プレフィックス合計リスト

    リストは、順序付けられて変更可能なコレクションです。 Pythonでは、リストは角かっこで囲まれています。インデックス番号を参照してリストアイテムにアクセスします。負のインデックス付けとは、最後から始まることを意味し、-1は最後のアイテムを指します。範囲を開始する場所と終了する場所を指定することにより、インデックスの範囲を指定できます。範囲を指定すると、戻り値は指定された項目を含む新しいリストになります。 例 # using list comprehension + sum() + list slicing # initializing list test_list = [3, 4, 1, 7

  2. Pythonの最大サブアレイ

    整数配列Aがあるとします。長さが少なくとも1で、合計が最大である連続したサブ配列を見つけて、その合計を返す必要があります。したがって、配列AがA =[-2,1、-3,4、-1,2,1、-5,4]のようである場合、合計は6になり、サブ配列は[4、-1になります。 、2、1] これを解決するために、動的計画法のアプローチを使用してみます。 Aのサイズと同じ配列dpを定義し、0で埋めます dp [0]:=A [0] for i =1 to the size of A – 1 dp [i]:=最大dp [i – 1] +A[i]およびA[i] 最大値をdpで返す 理解を深める