Menu
CoddyTech

Kth Largest Element in a Stream

쉬움힙python iconjava iconcpp iconc iconjs icon+10

정수 스트림은 nums의 값으로 시작합니다. 그런 다음 adds의 값이 한 번에 하나씩 들어옵니다. 값이 들어올 때마다 지금까지 확인한 모든 값 중 k번째로 큰 값을 기록합니다. 같은 값도 각각 따로 셉니다. 기록한 값을 순서대로 반환하되, adds의 각 값에 대해 하나씩 반환합니다.

nums에는 최소 k-1개의 값이 있으므로, 첫 번째 값이 들어온 후에는 항상 선택할 값이 최소 k개 있습니다.

함수

kthLargestStream(k: integer, nums: integer-array, adds: integer-array) → integer-array
kinteger
보고할 순위, 가장 큰 값은 1
numsinteger-array
스트림에 이미 있는 값
addsinteger-array
도착하는 값의 순서대로
반환값integer-array
각 항목이 도착한 후 k번째로 큰 값

제약 조건

  • 1 ≤ nums.length ≤ 104
  • 1 ≤ adds.length ≤ 104
  • 1 ≤ k ≤ nums.length + 1
  • -104 ≤ nums[i], adds[i] ≤ 104
  • nums는 어떤 순서로든 있을 수 있으며, 같은 값도 별개의 값으로 계산됩니다.

예제

입력
k = 3nums = [7, 1, 5]adds = [3, 9, 6, 2, 8]
출력
[3, 5, 6, 6, 7]
설명
3 다음에는 7, 5, 3, 1 중 세 번째로 큰 수인 3이 옵니다. 그런 다음 9가 이를 5로 올리고, 6이 6으로 올리며, 2는 아무 변화도 주지 않고, 8이 7로 올립니다(9, 8, 7).
challenge icon

후속 질문

값을 스트림에서 제거할 수도 있다면 같은 질문에 어떻게 답하시겠습니까?

코드 초기화
def kthLargestStream(k, nums, adds):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자들

k = 3
nums = [7, 1, 5]
adds = [3, 9, 6, 2, 8]

예상 출력

[3, 5, 6, 6, 7]