Il s'agit d'une refonte de cette question maintenant supprimée par ar kang . Si le PO de cette question souhaite récupérer cette question ou a un problème avec moi en postant cela, je serais heureux de répondre
Étant donné une liste d'entiers en entrée, trouvez la somme maximale possible d'une sous-liste continue qui commence et se termine avec la même valeur. Les sous-listes doivent être d'une longueur d'au moins 2. Par exemple pour la liste
[1, 2, -2, 4, 1, 4]
Il existe 2 sous-listes continues différentes commençant et se terminant avec la même valeur
[1,2,-2,4,1] -> 6
[4,1,4] -> 9
La somme la plus élevée étant 9, vous produisez 9.
Vous pouvez supposer que chaque entrée contient au moins 1 doublon.
Il s'agit de code-golf donc les réponses seront notées en octets avec moins d'octets mieux.
Cas de test
[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
Assistant de blé
la source
la source
[2,8,2,3,2]
être 12 ou 17? Je présume 17.Réponses:
Haskell , 62 octets
f
prend une liste d'entiers et retourne un entier.Essayez-le en ligne!
Comment ça marche
t
est la norme "obtenir tous les suffixes d'une liste sans importerData.List.tails
".f l
, la compréhension de la liste parcourt tous les suffixes non vides de la liste d'argumentsl
, avec le premier élémentx
et le restem
.m
, sélectionnant le premier élémenty
et le resten
.x
ety
sont égaux, la compréhension de la liste comprend la somme des éléments entre eux. Cette sous-liste est identiquex:m
à son suffixen
supprimé, de sorte que la somme peut être calculée comme suitx+sum m-sum n
.la source
JavaScript (ES6),
6862 octetsCas de test
Afficher l'extrait de code
Commenté
la source
y - a[i]
et(x += y) < m
- à mon humble avis, le code serait légèrement plus clair avec eux échangés, car il ressemble alors à un simple golf de(x += y) < m || y != a[i]
.(x+=y)<m|y-a[i]
pourrait(x+=y)<(m|y-a[i])
tout aussi bien être mal interprété . Je ne suis pas sûr que cela supprimerait vraiment l'ambiguïté. (Modifié quand même car j'ai tendance à préférer cette version.)y-a[i]|(x+=y)<m
comme(y-a[i]|(x+=y))<m
...Gelée , 12 octets
Essayez-le en ligne!
Comment ça marche
la source
Husk , 10 octets
Essayez-le en ligne!
Explication
la source
Haskell , 66 octets
Essayez-le en ligne!
la source
R ,
108103908883 octetsEssayez-le en ligne!
combn
frappe encore! Génère au moins toutes les sous-listes de longueur2
, définit la somme des sous- listes sur-Inf
si la première et la dernière ne sont pas égales et prend le maximum de toutes les sommes.Le
"if"
va déclencher un tas d'avertissements, mais ils peuvent être ignorés en toute sécurité - c'est probablement le meilleur tour de golf ici,rev(p)-p
est zéro dans le premier élément ssip[1]==tail(p,1)
, et"if"
utilise le premier élément de son état avec un avertissement.la source
Python 3 , 81 octets
Essayez-le en ligne!
la source
Python , 62 octets
Essayez-le en ligne!
Génère une liste singleton .
la source
Gelée ,
13, 12 octetsEssayez-le en ligne!
Un octet enregistré par M. Xcoder, qui est actuellement en compétition avec moi. :RÉ
Explication:
la source
Wolfram Language (Mathematica) , 54 octets
Essayez-le en ligne!
la source
Pyth, 15 octets
Essayez-le en ligne
Explication
la source
05AB1E , 9 octets
Essayez-le en ligne!
Explication
la source
Propre ,
949086 octetsEssayez-le en ligne!
la source
[1, 1, 80]
cas de test.Python 2 , 86 octets
Dépassé par Dennis
Essayez-le en ligne!
Génère toutes les sous-listes supérieures à la longueur 2, où le premier élément est égal au dernier, puis mappe chacune à sa somme et sélectionne la plus grande valeur.
la source
enumerate
.Ruby , 64 octets
Essayez-le en ligne!
la source
Julia 0,6 , 70 octets
Essayez-le en ligne!
la source
Gelée , 11 octets
Utilise certaines fonctionnalités postérieures au défi.
Essayez-le en ligne!
Comment ça marche?
-1 avec l'aide de caird .
la source
Lot, 179 octets
Prend l'entrée comme paramètres de ligne de commande.
la source
C, 104 octets
Essayez-le en ligne!
C (gcc) , 99 octets
Essayez-le en ligne!
la source
Clojure, 92 octets
la source
Java 8, 129 byes
Pour chaque entier
X
de la liste, la fonction recherche la somme de la plus grande sous-liste avec début et finX
. Ensuite, il trouve la somme maximale comme l'OP le spécifie.la source
[2,8,2,-3,2]
cas de test, et peut-être[1,1,80]
aussi.Perl,
6159 octetsComprend
+3
pour-p
:max_ident_run.pl
:Courir comme:
la source