重排数字的最小值
给你一个整数 num 。重排 num 中的各位数字,使其值 最小化 且不含 任何 前导零。
返回不含前导零且值最小的重排数字。
注意,重排各位数字后,num 的符号不会改变。
/**
* @param {number} num
* @return {number}
*/
const smallestNumber = (num) => {
if (num <= 0) {
return -Math.abs(num).toString().split('').sort().reverse().join('')
}
const arr = num.toString().split('').sort()
const lastZeroIndex = arr.lastIndexOf('0')
if (lastZeroIndex === -1) {
return Number(arr.join(''))
} else {
const zeroArr = new Array(lastZeroIndex + 1).fill(0)
return Number(`${arr[lastZeroIndex + 1]}${zeroArr.join('')}${arr.slice(lastZeroIndex + 2).join('')}`)
}
};
以自己现在的努力程度,还没有资格和别人拼天赋

浙公网安备 33010602011771号