Nhờ mọi người ý tưởng và thuật toán bài toán sau
Bài này lời giải bắt đầu bằng sort() nhưng có cách sort 1 phần cũng hay.
5 Likes
Bài này cho vô map là được mà, sao phải sort vậy a.
1 Like
map
thì phải tạo thêm cái map nữa để nhồi vào tốn mem.
Sort xong kéo 1 lần là ra.
1 Like
Nhưng sort xong lại mất công dò xem thằng nào nhiều nhất, ví dụ như case 10000 mã khác nhau thì lại phải lướt qua cả 10000 thằng, sort cho có màu.
1 Like
Vẫn hơn cấp phát cho std::map
3 Likes
Đề nó kêu tìm thằng xuất hiện nhiều nhất và số lần xuất hiện mà a.
1 Like
Thì lưu thêm phần tử nào max, 1 slot mem
2 Likes
Mà bài này cho có 10000 thằng, chắc sort cũng không lâu hơn bao nhiêu.
1 Like
Ừ nhỉ
Gọi A̅ là số phần tử khác nhau trong A (cardinality) thì:
- Nếu dùng
std::map
thì mem là O(A̅) và time là O(|A|logA̅) với một hằng số cũng khá lớn. - Nếu dùng
std::sort
thì mem là O(log|A|) và time là O(|A|log|A|) - Nếu dùng 3-way Quicksort thì mem là O(log|A̅|) và time là O(|A|logA̅)
4 Likes