Pythonで1からNまでの要素を含む配列で4つの欠落している数値を検索します
各数値が[1、N]の範囲にあり、配列サイズが(N-4)であり、単一の要素が繰り返されていない、個別の数値の配列があるとします。したがって、1からNまでの4つの数値が配列に欠落していることがわかります。これらの4つの欠落している番号を並べ替えて見つける必要があります。
したがって、入力がA =[2、8、4、13、6、11、9、5、10]の場合、出力は[1、3、7、12]
になります。これを解決するには、次の手順に従います-
-
temp_arr:=すべて0のサイズ4の配列
-
0からAのサイズの範囲のiの場合、実行
-
temp:=| A [i] |
-
temp <=Aのサイズの場合、
-
A [temp-1]:=A [temp-1] *(-1)
-
-
それ以外の場合、温度> Aのサイズの場合、
-
Aの一時modサイズがゼロ以外の場合、
-
temp_arr [Aの一時modサイズ-1]:=-1
-
-
それ以外の場合
-
temp_arr [(temp mod size of A)+ size of A-1]:=-1
-
-
-
-
0からAのサイズの範囲のiの場合、実行
-
A [i]> 0の場合、
-
i+1を表示
-
-
-
0からtemp_arrのサイズまでの範囲のiの場合、実行します
-
temp_arr [i]> =0の場合、
-
A + i+1の表示サイズ
-
-
例
理解を深めるために、次の実装を見てみましょう-
def find_missing_nums(A) : temp_arr = [0]*4 for i in range(0,len(A)) : temp = abs(A[i]) if (temp <= len(A)) : A[temp - 1] = A[temp - 1] * (-1) elif (temp > len(A)) : if (temp % len(A)) : temp_arr[temp % len(A) - 1] = -1 else : temp_arr[(temp % len(A)) +len(A) - 1] = -1 for i in range(0, len(A) ) : if (A[i] > 0) : print((i + 1) , end=" ") for i in range(0, len(temp_arr)) : if (temp_arr[i] >= 0) : print((len(A) + i + 1) , end=" ") A = [2, 8, 4, 13, 6, 11, 9, 5, 10] find_missing_nums(A)
入力
[2, 8, 4, 13, 6, 11, 9, 5, 10]
出力
1 3 7 12
-
Pythonでリストのサイズを見つける
リストはPythonのコレクションデータ型です。リスト内の要素は変更可能であり、要素に関連付けられた特定の順序はありません。この記事では、Pythonでリストの長さを見つける方法を説明します。つまり、重複しているかどうかに関係なく、リストに存在する要素の数を取得する必要があります。 例 以下の例では、「日」という名前のリストを使用します。まず、len()関数を使用してリストの長さを見つけます。次に、さらにいくつかの要素を追加し、append()関数を使用して長さを再度確認します。最後に、remove()関数を使用していくつかの要素を削除し、長さを再度確認します。要素が重複している場合でも、r
-
リストからN個の最大の要素を見つけるPythonプログラム
整数リストが与えられた場合、私たちのタスクはリスト内で最大のN個の要素を見つけることです。 例 Input : [40, 5, 10, 20, 9] N = 2 Output: [40, 20] アルゴリズム Step1: Input an integer list and the number of largest number. Step2: First traverse the list up to N times. Step3: Each traverse find the largest value and store it in a new list. 例 def Nnumbere