Это капитальный ремонт этого теперь удаленного вопроса от ar kang . Если ОП этого вопроса захочет вернуть этот вопрос или у меня возникнет проблема с его публикацией, я был бы рад принять
Учитывая список целых чисел в качестве входных данных, найдите максимально возможную сумму непрерывного подсписка, который начинается и заканчивается тем же значением. Длина списка должна быть не менее 2. Например, для списка
[1, 2, -2, 4, 1, 4]
Существуют 2 разных непрерывных списка, начинающихся и заканчивающихся одним и тем же значением
[1,2,-2,4,1] -> 6
[4,1,4] -> 9
Чем больше сумма 9, тем вы выведите 9.
Вы можете предположить, что каждый вход содержит как минимум 1 дубликат.
Это код-гольф, поэтому ответы будут оцениваться в байтах, причем меньшее количество байтов будет лучше.
Контрольные примеры
[1,2,-2,4,1,4] -> 9
[1,2,1,2] -> 5
[-1,-2,-1,-2] -> -4
[1,1,1,8,-1,8] -> 15
[1,1,1,-1,6,-1] -> 4
[2,8,2,-3,2] -> 12
[1,1,80] -> 2
[2,8,2,3,2] -> 17
code-golf
number
array-manipulation
Мастер пшеницы
источник
источник
[2,8,2,3,2]
быть 12 или 17? Я предполагаю, 17 лет.Ответы:
Haskell , 62 байта
f
принимает список целых чисел и возвращает целое числоПопробуйте онлайн!
Как это работает
t
является стандартнойData.List.tails
функцией «получить все суффиксы списка без импорта ».f l
, понимание списка перебирает все непустые суффиксы списка аргументовl
, с первым элементомx
и остаткомm
.m
, выбирая первый элементy
и остатокn
.x
иy
равны, понимание списка включает в себя сумму элементов между ними. Этот подсписок такой же, как иx:m
с удаленным суффиксомn
, поэтому сумма может быть рассчитана какx+sum m-sum n
.источник
JavaScript (ES6),
6862 байтаКонтрольные примеры
Показать фрагмент кода
комментарии
источник
y - a[i]
и(x += y) < m
- ИМХО код был бы немного понятнее, если бы они обменивались, так как с тех пор он выглядит как простой гольф(x += y) < m || y != a[i]
.(x+=y)<m|y-a[i]
может быть неправильно истолковано(x+=y)<(m|y-a[i])
. Я не уверен, что это действительно избавит от двусмысленности. (Отредактировано в любом случае, потому что я предпочитаю эту версию.)y-a[i]|(x+=y)<m
как(y-a[i]|(x+=y))<m
...Желе , 12 байт
Попробуйте онлайн!
Как это работает
источник
Шелуха , 10 байт
Попробуйте онлайн!
объяснение
источник
Haskell , 66 байт
Попробуйте онлайн!
источник
R ,
108103908883 байтаПопробуйте онлайн!
combn
забастовки снова! Генерирует как минимум все подсписки длины2
, устанавливает сумму подсписка-Inf
равной, если первый и последний не равны, и принимает максимум всех сумм.Он
"if"
выдаст кучу предупреждений, но они безопасно игнорируются - это, вероятно, лучший трюк в гольфе, онrev(p)-p
равен нулю в первом элементе iffp[1]==tail(p,1)
и"if"
использует первый элемент своего состояния с предупреждением.источник
Python 3 , 81 байт
Попробуйте онлайн!
источник
Python , 62 байта
Попробуйте онлайн!
Выводит одноэлементный список .
источник
Желе ,
13, 12 байтПопробуйте онлайн!
Один байт спас Мистер Xcoder, который в настоящее время конкурирует со мной. : D
Объяснение:
источник
Wolfram Language (Mathematica) , 54 байта
Попробуйте онлайн!
источник
Pyth, 15 байт
Попробуйте онлайн
объяснение
источник
05AB1E , 9 байтов
Попробуйте онлайн!
объяснение
источник
Чистый ,
949086 байтПопробуйте онлайн!
источник
[1, 1, 80]
теста.Python 2 , 86 байт
Превосходящий Деннис
Попробуйте онлайн!
Создает все подсписки, длина которых превышает длину 2, где первый элемент равен последнему, затем сопоставляет каждый элемент его сумме и выбирает наибольшее значение.
источник
enumerate
.Рубин , 64 байта
Попробуйте онлайн!
источник
Юлия 0,6 , 70 байт
Попробуйте онлайн!
источник
Желе , 11 байт
Использует некоторые функции, которые ставят после проблемы.
Попробуйте онлайн!
Как это работает?
-1 с помощью Кэрда .
источник
Пакет, 179 байт
Принимает ввод как параметры командной строки.
источник
C 104 байта
Попробуйте онлайн!
C (gcc) , 99 байтов
Попробуйте онлайн!
источник
Clojure, 92 байта
источник
Java 8, 129 байсов
Для каждого целого числа
X
в списке функция находит сумму самого большого подсписка с начала и концаX
. Затем он находит максимальную сумму, указанную в OP.источник
[2,8,2,-3,2]
тестовом случае, и, возможно,[1,1,80]
тоже.Perl
6159 байтВключает
+3
для-p
:max_ident_run.pl
:Беги как:
источник