Pythonで等しい積を持つ2つのサブ配列に配列を分割する要素を見つけます
サイズNの配列があるとします。配列を等しい積の2つの異なるサブ配列に分割する要素を見つける必要があります。そのようなパーティションが不可能な場合は-1を返します。
したがって、入力が[2,5,3,2,5]の場合、出力は3になり、サブ配列は{2、5}と{2、5}
になります。これを解決するには、次の手順に従います-
- n:=配列のサイズ
- multiply_pref:=新しいリスト
- multiply_prefの最後にarray[0]を挿入します
- 1からnの範囲のiについては、
- multiply_prefの最後にmultiply_pref[i-1]*array[i]を挿入します
- multiply_suff:=サイズnのリストで、何も入力しない
- multiply_suff [n-1]:=array [n-1]
- n-2から-1の範囲のiについては、1ずつ減らします。
- multiply_suff [i]:=multiply_suff [i + 1] * array [i]
- 1からn-1の範囲のiの場合、do
- multiply_pref[i]がmultiply_suff[i]と同じである場合、
- return array [i]
- multiply_pref[i]がmultiply_suff[i]と同じである場合、
- 戻り値-1
理解を深めるために、次の実装を見てみましょう-
def search_elem(array): n = len(array) multiply_pref = [] multiply_pref.append(array[0]) for i in range(1, n): multiply_pref.append(multiply_pref[i-1]*array[i]) multiply_suff = [None for i in range(0, n)] multiply_suff[n-1] = array[n-1] for i in range(n-2, -1, -1): multiply_suff[i] = multiply_suff[i+1]*array[i] for i in range(1, n-1): if multiply_pref[i] == multiply_suff[i]: return array[i] return -1 array = [2,5,3,2,5] print(search_elem(array))
入力
[2,5,3,2,5]
出力
3
-
配列内の最大の要素を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、配列の最大要素を計算する必要があります。 ここでは、ループ全体をトラバースして最大の要素を計算し、要素を取得するブルートフォースアプローチを使用します。 以下の実装を観察できます。 例 # largest function def largest(arr,n): #maximum element max = arr[0] # traverse the whole loop for
-
配列の合計を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '