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

Pythonで最も頻繁な要素の頻度を見つけるプログラム


配列numsと別の値kがあるとします。 1つの操作で、数値のインデックスを選択し、そのインデックスの要素を1つ増やすことができます。最大k回の操作を実行した後、要素の可能な最大頻度を見つける必要があります。

したがって、入力がnums =[8,3,6]、k =9のような場合、3 x 5、6 x 2を更新して[8,8,8]にすることができるため、出力は3になります。 7回の操作の後、最大頻度は3になります。

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

  • リスト番号を並べ替える

  • 左:=0、右:=1

  • 正しい

    • k:=k-(nums [right] --nums [right-1])*(right --left)

    • k <0の場合、

      • k:=k +nums[右]-nums[左]

      • 左:=左+ 1

    • 右:=右+ 1

  • 右に戻る-左

理解を深めるために、次の実装を見てみましょう-

def solve(nums, k):
   nums.sort()
   left = 0
   right = 1

   while right < len(nums):
      k -= (nums[right] - nums[right-1]) * (right - left)

      if k < 0:
         k += nums[right] - nums[left]
         left += 1

      right += 1

   return right - left

nums = [8,3,6]
k = 9
print(solve(nums, k))

入力

[8,3,6], 9

出力

3

  1. 行列の転置を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 行列が与えられた場合、転置を同じ行列に格納して表示する必要があります。 行列の転置は、行を列に、列を行に変更することで得られます。つまり、A行列の転置はA[i][j]をA[j][i]に変更することで得られます。 以下に示す実装を見てみましょう- 例 N = 4 def transpose(A):    for i in range(N):       for j in range(i+1, N):     &nbs

  2. 配列の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '