Xem xét bộ giá trị (được biểu diễn dưới dạng mảng được sắp xếp không có trùng lặp và với kích thước đã biết (nghĩa là kích thước có thể đạt được trong O (1)). Các giá trị có thể được kiểm tra tính bằng trong thời gian O (1). để có được tập hợp các giá trị có trong ít nhất k tập hợp khác nhau trong số n .
Thuật toán rõ ràng để làm điều này là đi qua tất cả các tập hợp, đếm số lần xuất hiện của mỗi giá trị và trả về những lần có số đếm cao hơn . Tuy nhiên, trong một số trường hợp, bạn có thể làm tốt hơn: ví dụ: khi n = k = 2 và khi một bộ S 1 nhỏ hơn nhiều so với bộ S 2 khác , sẽ hiệu quả hơn khi xem tất cả các mục của S 1 và thực hiện một tìm kiếm nhị phân cho mỗi trong số chúng trong S 2 : phương pháp tìm kiếm nhị phân có giá O ( | S 1 | log ( | S 2 | trong khi cách tiếp cận ngây thơ có giá O ( | S 1 | + | S 2 | ) tệ hơn khi | S 1 | < < | S 2 | .
Với suy nghĩ này, trong tình huống nào chúng ta có thể làm tốt hơn thuật toán ngây thơ? (Nếu đây là một vấn đề nổi tiếng, tôi sẽ rất vui khi biết tên thông thường của nó và có tài liệu tham khảo.)