
findKthLargestValueInMatrix
Cho một bảng với n
hàng và m
cột. Giá trị thứ i
ở hàng và thứ j
ở cột bằng i*j
(Các hàng và cột trong bảng được đánh số bắt đầu từ số 1
). Nhiệm vụ của bạn là tìm ra giá trị thứ k
lớn nhất trong bảng.
Nếu bạn viết ra n·m
số trong bảng theo thứ tự không giảm thì số thứ k
bạn viết ra được gọi là số thứ k
lớn nhất.
Ví dụ:
- Với
n = 3,m = 2,k = 4
, đầu ra là:findKthLargestValueInMatrix(n,m,k) = 3.
Vì:1x1 = 1
1x2 = 2
2x1 = 2
2x2 = 4
3x1 = 3
3x2 = 6
Khi sắp xếp các giá trị này theo thứ tự không giảm, ta có:1 2 2 3 4 6
Bạn có thể thấy số thứ4
là3
. - Với
n = 3, m = 3, k = 9
, đầu ra là:findKthLargestValueInMatrix(n,m,k) = 9
.
Vì:1x1 = 1
1x2 = 2
1x3 = 3
2x1 = 2
2x2 = 4
2x3 = 6
3x1 = 3
3x2 = 6
3x3 = 9
Khi sắp xếp các giá trị này theo thứ tự không giảm, ta có:1 2 2 3 3 4 6 6 9
Bạn có thể thấy số thứ9
là9.
Đầu vào/Đầu ra
- [giới gạn thời gian] 0.5s với C++, 3s với Java and C#, 4s với Python and JavaScript
- [đầu vào] integer n
Số hàng:1 ≤ n ≤ 5*104
- [đầu vào] integer m
Số cột:1 ≤ m ≤ 5*104
- [đầu vào] int64 k
1 ≤ k ≤ n * m
- [đầu ra] int64
Giá trị thứk
lớn nhất trong bảng.
Post Comment