Đây là một câu hỏi thú vị tôi đã tìm thấy trên web. Cho một mảng chứa n số (không có thông tin về chúng), chúng ta nên xử lý trước mảng theo thời gian tuyến tính để có thể trả về k phần tử nhỏ nhất trong thời gian O (k), khi chúng ta được cấp số 1 <= k <= n
Tôi đã thảo luận vấn đề này với một số người bạn nhưng không ai có thể tìm ra giải pháp; Bất kỳ trợ giúp sẽ được đánh giá cao!
ghi chú nhanh: - thứ tự của các phần tử k nhỏ nhất không quan trọng - các phần tử trong mảng là số, có thể là số nguyên và có thể không (vì vậy không có sắp xếp cơ số) - số k không biết trong giai đoạn tiền xử lý. tiền xử lý là thời gian O (n). hàm (tìm k phần tử nhỏ nhất) trên thời gian O (k).