Menu
CoddyTech

Kth Largest Element in an Array

Trung bìnhHeapSắp xếppython iconjava iconcpp iconc iconjs icon+10

Bạn nhận được một mảng số nguyên nums và một số nguyên k. Hãy trả về giá trị lớn thứ k trong nums: giá trị ở vị trí k, tính từ 1, sau khi sắp xếp mảng theo thứ tự giảm dần.

Các giá trị bằng nhau được tính riêng. Trong [5, 5, 1], giá trị lớn nhất là 5 và giá trị lớn thứ hai cũng là 5.

Hàm

findKthLargest(nums: integer-array, k: integer) → integer
numsinteger-array
các giá trị cần xếp hạng
kinteger
nên trả về giá trị lớn nhất nào, 1 cho giá trị lớn nhất
Trả vềinteger
giá trị lớn thứ k, tính cả các giá trị trùng lặp

Ràng buộc

  • 1 ≤ k ≤ nums.length ≤ 104
  • -104 ≤ nums[i] ≤ 104
  • Các giá trị bằng nhau vẫn được tính là các giá trị riêng biệt.

Ví dụ

Đầu vào
nums = [7, 2, 9, 4, 9, 1]k = 2
Đầu ra
9
Giải thích
Theo thứ tự từ lớn nhất đến nhỏ nhất, các giá trị là 9, 9, 7, 4, 2, 1. Hai số 9 được tính riêng, nên số lớn thứ hai là 9, không phải 7.
challenge icon

Câu hỏi mở rộng

Các giá trị giờ đến lần lượt từng giá trị một. Sau mỗi lần có giá trị mới, bạn có thể báo cáo trung vị của tất cả giá trị đã thấy cho đến lúc đó trong thời gian O(log n) cho mỗi giá trị không?

Đặt lại code
def findKthLargest(nums, k):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

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

Đầu ra mong đợi

9