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.