@space-symbol

Yandex контест. Почему выходит «ошибка во время исполнения»?

Я всё перепроверил 10 раз, но так и не понял в чём эта ошибка заключается. Надеюсь на вашу помощь

module.exports = function (N, staff, K) {
    if (N === K){
        return staff.reduce((accumulator, currentNumb) => accumulator += currentNumb, 0)
    }
    let maxNumbers = []
    for (let i = 1; i <= K; i++){
        let max = Math.max(...staff)
        maxNumbers.push(max)
        let indexOfMax = staff.indexOf(max)
        staff.splice(indexOfMax, 1)

    }
    return maxNumbers.reduce((accumulator, currentValue) => accumulator += currentValue, 0)
}
  • Вопрос задан
  • 252 просмотра
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
Тебе надо сумму К самых крупных значений? Решение конечно так себе, O(n*k), я бы поюзал бинарную кучу...

Но если абстрагироваться от скорости, то не разобран кейс, когда К > N. И конечно, переполнение стека при достаточно большом массиве staff. Не используй Math.max(...staff), сделай нормальный человеческий цикл.

N - это ведь длина массива staff?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы