檢查陣列洗牌強度 - JavaScript


如果陣列中沒有兩個連續的數字同時出現(這裡我們只考慮升序情況),則該陣列的洗牌程度為 100%。如果成對數字是連續的,則其洗牌程度為 0%。

對於長度為 n 的陣列,將有 n-1 對元素(不改變其順序)。

我們需要編寫一個 JavaScript 函式,該函式接受一個數字陣列,並返回一個介於 [0, 100] 之間的值,表示陣列中洗牌的強度

示例

以下是程式碼−

const arr = [4, 23, 1, 23, 35, 78, 4, 45, 7, 34, 7];
// this function calculates deviation from ascending sort
const shuffleIntensity = arr => {
   let inCorrectPairs = 0;
   if(arr.length <= 1){
      return 0;
   };
   for(let i = 0; i < arr.length - 1; i++){
      if(arr[i] - arr[i+1] <= 0){
         continue;
      };
      inCorrectPairs++;
   };
   return (inCorrectPairs / (arr.length -1)) * 100;
};
console.log(shuffleIntensity(arr));

輸出

以下是在控制檯中輸出的內容−

40

這意味著該陣列的 40% 塊已被洗牌。

更新日期: 2020 年 9 月 18 日

124 次瀏覽

開啟您的職業生涯

完成該課程以獲得認證

開始學習
廣告