JavaScript 中通过在最多一位上重新排列来形成的最小数字


问题

我们需要编写一个 JavaScript 函数,其中输入一个正数 n。我们最多可以进行一个操作 −

选择数字中某位的索引,移除该索引上的位,并将其重新插入数字中的另一个位置或相同位置,以找到我们能得到的最小数字。

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

示例

以下是代码 −

 实时演示

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

更新于: 19-Apr-2021

156 次浏览

开启您的 职业生涯

完成课程,获得认证

开始学习
广告
© . All rights reserved.