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

Pythonで何らかの操作を実行して、少なくとも半分の配列がゼロに還元可能かどうかを確認します


正の整数と別の正の整数mを含むサイズnのリストが提供されているとします。たとえば、現在ループ内にあり、各反復で、配列内のいくつかの要素の値を1減らし、残りの要素の値をm増やします。リストの要素の半分以上が、いくつかの反復の後にゼロになるかどうかを調べる必要があります。可能であればTrueを返し、そうでない場合はFalseを返します。

したがって、入力がinput_list =[10、18、35、5、12]、m =4のようである場合、出力はTrueになります。

これを解決するには、次の手順に従います-

  • frequency_list:=0で初期化されたサイズm+1の新しいリスト
  • i:=0
  • i
  • Frequency_list [input_list [i] mod(m + 1)]:=

    Frequency_list [input_list [i] mod(m + 1)] + 1

  • i:=i + 1
  • i:=0
  • i <=mの間、do
    • index_list [i]> =(input_listのサイズ/ 2)の場合、
      • ループから抜け出す
    • i:=i + 1
  • i <=mの場合、
    • Trueを返す
  • それ以外の場合、
    • Falseを返す
  • 理解を深めるために、次の実装を見てみましょう-

    def solve(input_list, m):
       frequency_list = [0] * (m + 1)
       i = 0
       while(i < len(input_list)):
          frequency_list[(input_list[i] % (m + 1))] += 1
          i += 1
       i = 0
       while(i <= m):
          if(frequency_list[i] >= (len(input_list)/ 2)):
             break
          i += 1
       if (i <= m):
          return True
       else:
          return False
    input_list = [10, 18, 35, 5, 12]
    print(solve(input_list, 4))

    入力

    [10, 18, 35, 5, 12], 4

    出力

    True

    1. Pythonの並べ替えられた配列で数値が多数決要素であるかどうかを確認する

      numsという名前の配列があり、降順ではない順序で並べ替えられ、数値ターゲットがあるとします。ターゲットが過半数の要素であるかどうかを確認する必要があります。配列では、多数決要素は、長さNの配列でN / 2回以上出現する要素です。したがって、配列が-[2,4,5,5,5,5,5,6,6]のようである場合ターゲットが5の場合、出力はtrueです。 これを解決するには、次の手順に従います- 2つの支援モジュール、lower()とupper()があります。これらは次のとおりです。 lower()は、配列arrとtargetの2つの引数、つまり-を取ります。 低:=0、高:=到着の長さ 低<高

    2. 指定された配列が単調であるかどうかを確認するPythonプログラム

      この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 n個の整数を含む配列入力Arrが与えられます。入力配列が本質的に単調であるかどうかを確認する必要があります。 アレイが継続的に増加または継続的に減少している場合、そのアレイは本質的に単調であると言われます。 数学的に すべてのi<=j、の場合、配列Aは継続的に増加します。 A[i] <= A[j]. すべてのi<=j、の場合、配列Aは継続的に減少しています。 A[i] >= A[j]. ここでは、隣接するすべての要素が上記の条件のいずれかを満たしているかどうかを確