Avoir la fonction nextLargest(num) qui prend le paramètre num passé et renvoie le prochain nombre supérieur à num en utilisant les mêmes chiffres. Par exemple : si num est 123 renvoie 132, si c'est 12453 renvoie 12534. Si un nombre n'a pas de permutations plus grandes, renvoyer -1 (par exemple 999).
Exemples
Input: 11121 Output: 11211 Input: 41352 Output: 41523
var permute = (function () {
return permute;
function permute(list) {
return list.length ?
list.reduce(permutate, []) :
[[]];
}
function permutate(permutations, item, index, list) {
return permutations.concat(permute(
list.slice(0, index).concat(
list.slice(index + 1)))
.map(concat ,[item]));
}
function concat(list) {
return this.concat(list);
}
}());
console.log(JSON.stringify(permute([1,2,3,4])));
mon résultat : [[1,2,3,4],[1,2,4,3],[1,3,2,4],[1,3,4,2],[1,4,2,3],[1,4,3,2],[2,1,3,4],[2,1,4,3],[2,3,1,4],[2,3,4,1],[2,4,1,3],[2,4,3,1],[3,1,2,4],[3,1,4,2],[3,2,1,4],[3,2,4,1],[3,4,1,2],[3,4,2,1],[4,1,2,3],[4,1,3,2],[4,2,1,3],[4,2,3,1],[4,3,1,2],[4,3,2,1]]
résultat attendu :
Input: 11121
Output: 11211
Input: 41352
Output: 41523