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() :smiley: 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. :slight_smile:

1 Like

map thì phải tạo thêm cái map nữa để nhồi vào :smiley: 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. :slight_smile:

1 Like

Vẫn hơn cấp phát cho std::map :smiley:

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. :kissing:

1 Like

Thì lưu thêm phần tử nào max, 1 slot mem :slight_smile:

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. :kissing:

1 Like

Ừ nhỉ :smiley:
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̅) :smiley:
4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?