JavaScript中最多改组一位数字所形成的最小数字

问题

我们需要编写一个接受正数 n 的 JavaScript 函数。我们最多可以做一个操作 -

选择数字中某个数字的索引,在该索引处删除该数字并将其插入到另一个或数字中的相同位置,以便找到我们可以得到的最小数字。

我们的函数应该返回这个最小的数字。

示例

以下是代码 -

const num = 354166;

const smallestShuffle = (num) => {

   const arr = String(num).split('');

   const { ind } = arr.reduce((acc, val, index) => {

      let { value, ind } = acc;

      if(value > val){

         value = val;

         ind = index;

      };

      return { value, ind };

   }, { value: Infinity, ind: -1 });

   const [item] = arr.splice(ind, 1);

   arr.unshift(item);

   return Number(arr.join(''));

};

console.log(smallestShuffle(num));

输出结果

以下是控制台输出 -

135466

以上是 JavaScript中最多改组一位数字所形成的最小数字 的全部内容, 来源链接: utcz.com/z/351672.html

回到顶部