Giả sử bạn có k
các mảng kích thước N
, mỗi mảng chứa các giá trị duy nhất từ 1
đến N
.
Làm thế nào bạn tìm thấy hai con số trung bình cách xa nhau nhất?
Ví dụ, đưa ra các mảng:
[1,4,2,3]
[4,2,3,1]
[2,3,4,1]
Sau đó, câu trả lời sẽ là mục 1
và 2
, bởi vì chúng cách nhau 2 khoảng trong hai mảng đầu tiên và cách nhau 3 số trong số cuối cùng.
Tôi biết một giải pháp O (kN ^ 2) (bằng cách đo khoảng cách giữa mỗi cặp số cho mỗi k
mảng), nhưng có giải pháp nào tốt hơn không?
Tôi muốn thực hiện một thuật toán như vậy trong C ++, nhưng bất kỳ mô tả nào về giải pháp đều hữu ích.