Tôi có hai danh sách đối tượng và tôi muốn xóa các cá thể khỏi một danh sách có trong danh sách khác.Xóa các bản sao trùng lặp khỏi một danh sách bằng cách so sánh với một danh sách khác
ví dụ: Tôi đã theo hai danh sách và giả sử mỗi chữ đại diện cho đối tượng.
Danh sách Lista = {A, B, C, D, E, F, G, H, I, J}
Danh sách listB = {D, G, K, P, Z}
Bây giờ, rõ ràng listB có D và G mà đang có trên Lista quá vì vậy tôi muốn Lista là như thế này
Lista = {A, B, C, E, F, H, I, J}
Can các bạn vui lòng đề xuất giải pháp cho điều này với O (n) hoặc ít hơn O (n2).
Tôi có thể lặp qua cả hai danh sách và xóa các trường hợp trùng lặp bằng cách so sánh nhưng tôi muốn có thứ gì đó hiệu quả hơn.
Bạn có thể giả định rằng danh sách được sắp xếp không? – templatetypedef
No. Thứ tự không quan trọng! –
Điều thú vị là ý tưởng đầu tiên luôn có vẻ là phân loại, điều này tất nhiên là rất hợp lý vì nó cho phép một giải pháp phức tạp tuyến tính; tuy nhiên nói chung, thậm chí không cần phải tồn tại một phần đơn đặt hàng trên các phần tử :) –