Даны два слайса одинаковой длины: sellers — имена продавцов и likes —
количество лайков у продавца с тем же индексом. Верните имена, отсортированные
по лайкам по убыванию. При равном количестве лайков продавцы идут в том же
порядке, что и во входе (устойчивая сортировка).
// SortSellers возвращает имена продавцов по убыванию лайков, при равенстве —
// в исходном порядке. Входные слайсы не меняются.
func SortSellers(sellers []string, likes []int) []string
Примеры
sellers = ["UserA", "UserB", "UserC"], likes = [11, 19, 14]
→ ["UserB", "UserC", "UserA"]
sellers = ["A", "B", "C", "D"], likes = [5, 7, 5, 7]
→ ["B", "D", "A", "C"]
sellers = [], likes = [] → []
Ограничения
len(sellers) == len(likes), 0 ≤ len ≤ 10⁶; имена могут повторяться.
- Лайки — любые
int, включая отрицательные и экстремальные значения.
- Входные слайсы менять нельзя. Ожидается O(n log n).
Разбор и эталонное решение — после своей попытки: на собеседовании подсказок не будет.
Сначала попробуй сам — подсказки не дают готовый ответ.