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

Pythonで不公平が最小である与えられた配列から長さkの配列を見つけるプログラム


配列Aと別の値kがあるとします。 Aから要素を取得してサイズがkbuの配列arrを形成し、不公平を最小限に抑える必要があります。ここで、不公平は次の式で計算されます-

(𝑚𝑎𝑥𝑖𝑚𝑢𝑚𝑜𝑓𝑎𝑟𝑟)−(𝑚𝑖𝑛𝑖𝑚𝑢𝑚𝑚

したがって、入力がA =[25、120、350、150、2500、25、35]、k =3の場合、要素[25、25、35]を取得できるため、出力は10になります。 (arr)=35およびmin(arr)=25。したがって、それらの差は10です。

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

  • i:=0
  • リストAを並べ替える
  • n:=Aのサイズ
  • m:=A [n-1]
  • x:=0、y:=0
  • i
  • A [i + k-1]-A [i]
  • m:=A [i + k-1]-A [i]
  • i:=i + 1
  • return m
  • 理解を深めるために、次の実装を見てみましょう-

    def solve(A, k):
       i=0
       A.sort()
       n = len(A)
       m=A[n-1]
       x=0
       y=0
       while i<n-k:
          if(A[i+k-1]-A[i]<m):
             m=A[i+k-1]-A[i]
          i+=1
       return m
    
    A = [25, 120, 350, 150, 2500, 25, 35]
    k = 3
    print(solve(A, k))

    入力

    [25, 120, 350, 150, 2500, 25, 35]

    出力

    10

    1. Pythonで不可逆ランレングスエンコーディングの最小長を見つけるプログラム

      小文字の文字列sと別の値kがあるとします。ここで、繰り返される連続する文字をカウントおよび文字として配置することにより、文字列に対してランレングスエンコーディングを実行する操作について考えてみます。したがって、文字列が「aaabbc」のような場合、「3a2bc」としてエンコードされます。ここでは、「c」の代わりに「1c」を付けません。これは、連続して1回しか表示されないためです。したがって、最初にs内のk連続文字を削除してから、結果のrun-lengthencodingの可能な最小の長さを見つけることができます。 したがって、入力がs =xxxxxyyxxxxxzzxxx、k =2の場合、2

    2. Pythonで指定された条件で最長のサブリストの長さを見つけるプログラム

      サブリストの最大値です。 6として。 これを解決するために、次の手順に従います- ret:=0 2つの両端キューminqとmaxqを定義します l:=0、r:=0 r