nextBigger wip
by trentHarlem
JavaScript
function nextBigger5(n) {
let arr = n.toString().split('').reverse();
let i = arr.findIndex((d, _i) => d < arr[_i - 1]);
if (i === -1) {
return -1;
}
let subarr = arr.slice(0, i);
let j = subarr.findIndex(d => d => arr[i]);
subarr.splice(j, i, arr[i]);
return parseInt(
arr
.slice((i = 1))
.reverse()
.concat(arr[j])
.concat(subarr)
.join('')
);
}
console.log(nextBigger5(144))
//'use strict'
/* function nextBigger(n) {
if(n<10){return -1}
const numSort = n => +String(n).split('').sort((a,b)=>b-a).join('')
//console.log('sortd',numSort(n))
let origSort = numSort(n)
let nextBig = n
while(true) {
nextBig+=1
if(numSort(nextBig)===origSort){
//console.log('sortd next',numSort(nextBig))
return nextBig
}
}
//return nextBig
return -1
}
*/
function nextBiggerLarge(n) {
let arr = String(n).split('')
const numSort = n => +String(n).split('').sort((a,b)=>b-a).join('')
function findLower(n) {
//let str = String(n)
let str = `${n}`
let end = str.length - 1
for (let i = 0; i < str.length; i++) {
let slide = end - i
let index = slide - 1
if (str[slide] > str[index]) {
console.log(index)
return index
}
}
}
let scissors = findLower(n)
//(findLower(n)<1)?
let pre = +arr.slice(0, scissors).join('')
console.log('pre', pre)
let post = +arr.slice(scissors).join('')
console.log('post', post)
//let pre,post;
let origSort = numSort(n)
//+String(n).split('').sort((a, b) => b - a).join('')
let nextPost = post
//console.log('n', n)
// console.log(nextBig)
let nextBig = `${pre}${nextPost}`
//console.log('nextBig', nextBig)
//console.log(+String(nextBig).split('').sort((a, b) => b - a).join(''))
while (true) {
nextPost += 1
//console.log('post', post,`${pre}${post}`)
//console.log(numSort(nextPost), numSort(post))
if (numSort(nextPost) === numSort(post)) {
//return +nextBig
return...