Menu
CoddyTech

Kth Largest Element in an Array

ふつうヒープソートpython iconjava iconcpp iconc iconjs icon+10

整数配列 nums と整数 k が与えられます。nums の中で k 番目に大きい値を返してください。つまり、配列を大きい順に並べたとき、先頭から数えて k 番目の値です。

同じ値もそれぞれ別個に数えます。[5, 5, 1] では、最大の値は 5 で、2 番目に大きい値も 5 です。

関数

findKthLargest(nums: integer-array, k: integer) → integer
numsinteger-array
ランク付けする値
kinteger
返す最大値。最大値の場合は1
戻り値integer
重複を数えた場合の、k 番目に大きい値

制約

  • 1 ≤ k ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • 等しい値も、それぞれ別の値として数えます。

例

入力
nums = [7, 2, 9, 4, 9, 1]k = 2
出力
9
説明
値を大きい順に並べると、9, 9, 7, 4, 2, 1です。9は2つそれぞれ別に数えるので、2番目に大きい値は7ではなく9です。

lock icon提出時に隠しテスト+15件

challenge icon

発展問題

値が1つずつ届くようになりました。各値が届くたびに、それまでに見たすべての値の中央値を、値ごとに O(log n) の時間で報告できますか?

コードをリセット
def findKthLargest(nums, k):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

nums = [7, 2, 9, 4, 9, 1]
k = 2

期待値

9