Функция со средней сложностью o (n log n), чтобы подсчитать количество запросов, которые пользователь запрашивает большеJavascript

Форум по Javascript
Ответить
Anonymous
 Функция со средней сложностью o (n log n), чтобы подсчитать количество запросов, которые пользователь запрашивает больше

Сообщение Anonymous »

Я разрабатываю алгоритм для фильтрации и подсчета количества слов, которые пользователи запрашивают наиболее .

Код: Выделить всё

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 
- массив строк поиска. - Количество самых популярных ключевых слов для возврата.
Я запускаю следующую командную консоль.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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»