Код: Выделить всё
const queries = [
"weather today", "openai", "javascript arrays", "weather today",
"news", "javascript arrays", "open", "javascript arrays",
"recipe", "news", "openai", "weather today"
];
Средняя сложность O (n log n)
Моя функция пишет, но она не работает правильно :
Код: Выделить всё
function topKFrequent(queries, k) {
const freqMap = {};
for (const q of queries) {
freqMap[q] = (freqMap[q]) + 1;
}
const entries = Object.entries(freqMap);
entries.sort((a, b) => {
let countA = a[1], countB = b[1];
if (countA != countB) {
return countB - countA;
}
return a[0].localeCompare(b[0]);
});
return entries.slice(0, k).map(entry => entry[0]);
}
< /code>
с: < /p>
queries Код: Выделить всё
kЯ запускаю следующую командную консоль.log (topkfrequent (Queries, 2));
Это выходы [«Погода сегодня», «openai»] , и на самом деле я ожидал Сегодня "] , потому что" JavaScript Arrays " и" погода сегодня " оба появляются 3 раз, в то время как" openai " появляется ровно 2 раз.
Ожидаемый результат:
Код: Выделить всё
["javascript arrays", "weather today"]Средняя сложность o (n log n)
thanks.
Подробнее здесь: https://stackoverflow.com/questions/796 ... queries-th
Мобильная версия