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

PythonのストリームでK番目に大きい要素


ストリーム内でk番目に大きい要素を見つけるクラスを設計するとします。これは、ソートされた順序でk番目に大きい要素であり、k番目の個別の要素ではありません。

KthLargestクラスには、整数kと配列numsを受け入れるコンストラクターがあり、ストリームからの初期要素が含まれます。 KthLargest.addメソッドを呼び出すたびに、ストリーム内でk番目に大きい要素を表す要素が返されます。

したがって、入力がk =3、初期要素=[4,5,8,2]のような場合は、add(3)、add(5)、add(10)、add(9)、add(4)を呼び出します。 。の場合、出力はそれぞれ4、5、5、8、8になります。

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

  • 初期化子を定義します。これにはk、numsが必要です
    • array:=nums
  • 関数add()を定義します。これにはval
      が必要です
    • 配列の最後にvalを挿入
    • 配列を並べ替える
    • return array [size of array -k]

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

class KthLargest:
   def __init__(self, k, nums):
      self.array = nums
      self.k = k
   def add(self, val):
      self.array.append(val)
      self.array.sort()
      return self.array[len(self.array)-self.k]
ob = KthLargest(3, [4,5,8,2])
print(ob.add(3))
print(ob.add(5))
print(ob.add(10))
print(ob.add(9))
print(ob.add(4))

入力

ob.add(3)
ob.add(5)
ob.add(10)
ob.add(9)
ob.add(4)

出力

4
5
5
8
8

  1. 配列内の最大の要素を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、配列の最大要素を計算する必要があります。 ここでは、ループ全体をトラバースして最大の要素を計算し、要素を取得するブルートフォースアプローチを使用します。 以下の実装を観察できます。 例 # largest function def largest(arr,n):    #maximum element    max = arr[0]    # traverse the whole loop    for

  2. 配列内の最大の要素を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列を指定すると、配列内で最大の要素を見つける必要があります。 アプローチ maxを最初の要素として初期化します。 この後、指定された配列を2番目の要素から最後までトラバースします。 トラバースされたすべての要素について、現在のmaxの値と比較します maxより大きい場合、maxが更新されます。 それ以外の場合、ステートメントはを超えます 以下の実装を見てみましょう- 例 def largest(arr,n):    #maximal element