檢查陣列洗牌強度 - 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% 塊已被洗牌。
廣告