JSFiddle - React, Tailwind, and code Playground
by TheDiamondDoge
JavaScript
/* function nextSmaller(n) {
if (n.toString().length === 1) return -1;
let nArrReversed = n.toString().split('').reverse();
for (let i = 0; i < nArrReversed.length - 1; i++) {
for (let j = i + 1; j < nArrReversed.length; j++) {
if (nArrReversed[i] < nArrReversed[j]) {
nArrReversed.splice(j + 1, 0, nArrReversed[i]);
nArrReversed.splice(i, 1);
nArrReversed.reverse();
return nArrReversed[0] == 0 ? -1 : Number(nArrReversed.reverse().join(""));
}
}
}
return -1;
} */
function nextSmaller(n) {
if (n.toString().length === 1) return -1;
let nArr = n.toString().split('');
let candidates = [];
for (let i = 0; i < nArr.length - 1; i++) {
for (let j = i + 1; j < nArr.length; j++) {
if (nArr[i] > nArr[j]) {
nArr.splice(j + 1, 0, nArr[i]);
nArr.splice(i, 1);
if (nArr[0] != 0) candidates.push(Number(nArr.join("")));
}
}
}
if (!candidates.length) return -1;
candidates.sort((a, b) => b - a);
return candidates[0];
}
console.log(nextSmaller(172));