Показать сообщение отдельно
  #1 (permalink)  
Старый 08.07.2017, 11:51
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

Требуется code review
Задача: Массив [2, 5, 9, 11, 1, 2, 4]
X = 12
Найти подмассив, сумма элементов которого больше X, а количество элементов минимально возможное

Решение:
const find = (target, data, resultMas = [], sum = 0) => {
 	// случай если сумма чисел меньше target
	if (!data.length) {
    	    console.error('max value:!', sum);
            return
        }
	const maxNum = Math.max.apply(Math, data);
        const index = data.indexOf(maxNum);
    
        resultMas.push(maxNum);
        sum = resultMas.reduce((prev, next) => prev + next);
    
        const test = sum > target;
        if (test) {
    	    return resultMas
        } else {
            data.splice(index, 1);
            return find(target, data, resultMas, sum);
        }
};

пример
Решение громоздкое, если есть варианты отпишите

Последний раз редактировалось DynkanMaclaud, 08.07.2017 в 11:53.
Ответить с цитированием