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

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

  1. Pythonでリストのサイズを見つける

    リストはPythonのコレクションデータ型です。リスト内の要素は変更可能であり、要素に関連付けられた特定の順序はありません。この記事では、Pythonでリストの長さを見つける方法を説明します。つまり、重複しているかどうかに関係なく、リストに存在する要素の数を取得する必要があります。 例 以下の例では、「日」という名前のリストを使用します。まず、len()関数を使用してリストの長さを見つけます。次に、さらにいくつかの要素を追加し、append()関数を使用して長さを再度確認します。最後に、remove()関数を使用していくつかの要素を削除し、長さを再度確認します。要素が重複している場合でも、r

  2. リストから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