Pythonで指定された配列内のすべての適切なインデックスを検索します
数値の配列Aがあるとすると、この配列のすべてのインデックスを見つけて、配列からi番目の要素を削除した後、その配列が適切な配列になるようにする必要があります。そのことを覚えておく必要があります-
- 適切な配列とは、他のすべての要素の合計に等しい要素を持つ配列です。
- 1ベースのインデックスがここで使用されます。
したがって、入力が[10、4、6、2]の場合、出力は[1,4]になり、A [1]を削除すると、配列は[4、6、2]のようになります。 6 =4 + 2なので、良いです。 A [4]を削除すると、配列は[10、4、6]のようになり、10 =4+6のようになります。
これを解決するには、次の手順に従います-
- n:=Aのサイズ
- 追加:=0
- my_map:=新しい地図
- 0からnの範囲のiについては、
- my_map [A [i]]:=my_map [A [i]] + 1
- 追加:=追加+ A [i]
- 0からnの範囲のiについては、
- k:=追加-A [i]
- k mod 2が0と同じ場合、
- k:=k / 2
- my_mapでkの場合、
- (A[i]がkと同じでmy_map[k]> 1)または(A [i]がkと同じでない)の場合、
- i+1を表示
- (A[i]がkと同じでmy_map[k]> 1)または(A [i]がkと同じでない)の場合、
例
理解を深めるために、次の実装を見てみましょう-
from collections import defaultdict def find_indices(A): n = len(A) add = 0 my_map = defaultdict(lambda:0) for i in range(n): my_map[A[i]] += 1 add += A[i] for i in range(n): k = add - A[i] if k % 2 == 0: k = k >> 1 if k in my_map: if ((A[i] == k and my_map[k] > 1) or (A[i] != k)): print((i + 1)) A = [10, 4, 6, 2] find_indices(A)
入力
[10, 4, 6, 2]
出力
1 4
-
配列内の最大の要素を見つける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 '