На входе:
nums - массив чисел, определяющих стоимость рекламы каждого блогера
target - целевое значение
На выходе: число - сумма трех чисел из массива nums, наиболее близкая к target
Пример:
nums = [-1, 2, 1, -4]
target = 1
closestSum( nums, target ) --> 2 // сумма, наиболее близкая к **target=1** это **2** (-1 + 2 + 1 = 2)
Как нам понять какие значения из массива брать? Точнее как сделать так, чтобы из нашего листа брались рандомные значения и проверялись с таргетом, пока результат не будет к нему приближен?!
Да и в целом непонятно как это все сделать((
Мб через среднее значение? Или бред?
Никита Мельников (MifitoS)
18 уровень
Задачка для умных )) Даже решение не обязательно. Лишь бы логику понять ...
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Павел
8 сентября 2021, 10:05
В листах пойдет?
как выбрать первые 3 из листа pair, думаю тебе известно. +1
Pavlo Plynko Java-разработчик в CodeGym Expert
8 сентября 2021, 09:30
просто генерируешь три рандомных числа, и берешь из листа значения с такими индексами, и все это в цикле. А проверять с таргетом с помощью if, и как только результат окажется приближен к таргету, прерываешь цикл.
+1
hidden #2460969
5 сентября 2021, 18:09
погугли про задачу рюкзака
+1
Никита Мельников (MifitoS) Java Developer в Сбер
6 сентября 2021, 03:58
не помогло :c
0