Étant donné une liste d'entiers positifs qui contient au moins 3 entrées distinctes, affichez une permutation de cette liste qui n'est pas triée dans l'ordre croissant ou décroissant.
Exemples
1,2,3 -> 2,1,3 or 3,1,2 or 1,3,2 or 2,3,1
1,2,3,3 -> 2,1,3,3 or 3,1,2,3 or 1,3,2,3 etc..
Merci @Arnauld et @NoOneIsHere pour le titre!
[2,[1,3]]
.Réponses:
JavaScript (ES6),
3934 octetsTriez le tableau par ordre croissant, éclatez le dernier élément et utilisez-le comme premier élément d'un nouveau tableau. Ensuite, détruisez les éléments restants du tableau d'origine dans le nouveau tableau (dans JS, les deux
sort
etpop
modifiez le tableau d'origine).Essaye-le
la source
a.sort()
?sort
méthode de JS trie lexicographiquement.Brachylog , 2 octets
Essayez-le en ligne!
ou
Essayez-le en ligne!
Trie puis fait pivoter la liste
la source
Gelée , 3 octets
Essayez-le en ligne!
la source
Ṣṙ-
fonctionne aussi (juste envie de dire ça; vous saviez probablement: P)Ṣṙ1
seulement trois octets? En UTF-8, c'est 7 octets.Ohm , 2 octets
Essayez-le en ligne!
Triez et faites pivoter vers la droite.
la source
Japt , 3 octets
Essaye-le
Trie (
n
) le tableau et le fait pivoter (é
) d'un élément vers la droite.la source
Python 3 , 31 octets
Essayez-le en ligne!
-1 octet grâce à xnor
la source
min
à la fin économise un octet.APL, 9 octets
Essayez-le en ligne!
Comment?
⍵[⍋⍵]
- trier la liste1⌽
- tourner de 1la source
TI-Basic (TI-84 Plus CE), 31 octets
Invite à entrer le format
{1,2,3,4}
.TI-Basic est un langage à jetons, tous les jetons utilisés ici sont à un octet.
Explication:
la source
Pyth ,
754 octetsEssayez-le en ligne!
-1 octet grâce à FryAmTheEggman
la source
05AB1E , 2 octets
Essayez-le en ligne!
la source
05AB1E , 2 octets
Essayez-le en ligne!
la source
Rétine , 21 octets
Essayez-le en ligne! Trier et faire pivoter comme d'habitude. Au moins, il n'y a pas de conversion unaire cette fois.
la source
Java 8,
6837 octets-31 octets grâce à @Nevay (oublié que Java 8 avait une
List#sort(Comparator)
méthode ..)Modifie l'entrée
ArrayList
, au lieu d'en renvoyer une nouvelle.Explication:
Essayez-le ici.
la source
l->{l.sort(null);java.util.Collections.rotate(l,1);}
pour enregistrer 16 octets.l->{l.sort(null);l.add(l.remove(0));}
pour économiser 31 octets (nécessite l'utilisation d'une liste de taille non fixe).add
etremove
doivent être implémentées; rien n'est dit sur la liste de taille fixe ... Kevin Cruijssen, étant donné qu'il existe de bien meilleures alternatives dans les commentaires précédents, j'attendrai une modification avant +1.Haskell,
3637 octetsUtilisez des modèles de vue pour faire correspondre la tête d'une version triée de la liste d'entrée, puis ajoutez le premier élément de la liste à la fin de la liste restante.Les modèles de vue n'en valent pas la peine. Triez la liste, retirez la tête, ajoutez-la à la fin. Dans ce cas, il s'avère que la solution naïve typée de manière compacte est la meilleure.
la source
-XViewPatterns
. Compter ceux-ci de la manière standardf(a:b)=b++[a];f.sort
est plus court.Perl 6 ,
4319 octetsEssayez-le
Essayez-le
Notez que
[1..*,0]
cela entraînerait((2,3),1)
,.flat
est donc là pour le transformer en(2,3,1)
la source
Mathematica, 18 octets
Essayez-le en ligne!
la source
RotateLeft@*Sort
Ly , 7 octets
Essayez-le en ligne!
Ugh, ruiner le genre coûte tellement cher!
Explication:
la source
R,
333229 octetsPrend l'entrée de stdin. Trie la liste, puis déplace le premier élément à la fin, en s'assurant qu'il n'est plus trié. Enregistré trois octets en raison de Giuseppe.
Une autre implémentation, même nombre d'octets:
la source
c(sort(x<-scan())[-1],min(x))
est de 29 octets utilisant essentiellement la même idée que la vôtre.Ohm , 2 octets
Essayez-le en ligne!
Je pense que cela est assez différent du message de totalement humain pour poster une nouvelle réponse; J'espère que cela ne vous dérange pas: P EDIT : DAMMIT YOU NINJA'D ME
la source
Python, 31 octets
Encore une autre solution Python.
Malheureusement, celui-ci a la même longueur que la réponse d' HyperNeutrino .
la source
Gaia , 3 octets
Essayez-le en ligne!
Identique aux autres réponses: triez
ȯ
et tournez à gauche une fois1«
.la source
Rétine , 10 octets
Essayez-le en ligne!
Cela laisse la liste avec le 2e élément le plus élevé en premier et le dernier élément le plus élevé qui n'est jamais correctement trié
la source
Rubis, 18 octets
Soumis sur mobile. Veuillez ne pas me tuer pour des problèmes.
la source
Pyth, 5 octets
Explication
SQ
- trier la liste d'entrée.>SQ1
- rotation cyclique de la liste des entrées de 1la source
Proton , 19 octets
Essayez-le en ligne!
-2 octets indirectement grâce à xnor
Ne travaille pas encore sur TIO; en attente d'une traction.la source
Python 3 , 28 octets
Essayez-le en ligne!
a.sort()
triea
sur place et retourneNone
.None
peut être utilisé comme indice de découpage et équivaut à omettre cet index.la source
Python 3 , 31 octets
Essayez-le en ligne! ou Vérifiez tous les cas de test.
Inspiré par la réponse JS de Shaggy .
la source
RProgN 2 , 2 octets
Essayez-le en ligne!
la source
PHP, 44 octets
nécessite PHP 5.4 ou une version ultérieure pour une syntaxe de tableau courte.
trier les arguments, remplacer le 0-ème argument par le dernier argument supprimé, imprimer.
Courez avec
-nr
ou essayez-le en ligne .Le 0-ème argument est le nom du fichier de script,
"-"
si vous appelez PHP avec-r
."-"
est comparé aux autres arguments sous forme de chaîne, et depuisord("-")==45
, il est plus petit que n'importe quel nombre. Les chiffres eux - mêmes, bien que les chaînes, sont comparés en tant que numéros:"12" > "2"
.php -nr '<code>' 3 4 2 5 1
etsort($a=&$argv)
conduire à$a=["-","1","2","3","4","5"]
→[array_pop($a)]+$a
est[0=>"5"]+[0=>"-",1=>"1",2=>"2",3=>"3",4=>"4"]
,ce qui se traduit par
[0=>"5",1=>"1",2=>"2",3=>"3",4=>"4"]
.la source
+
opérateur n'ajoute pas, il fusionne (sans réordonner les index; mais cela n'a pas d'importance ici). Le point important est qu'il$a
pointe vers$argv
et$argv[0]
contient le nom du fichier du script, les arguments commencent à l'index 1. J'ai étendu la description. Merci pour la question.Julia, 23 octets
Légèrement plus court que, mais équivalent à
f(x)=circshift(sort(x),1)
. Je souhaiterais pouvoir créer une méthode basée sur ceselect
qui était plus, compact mais je ne peux pasla source