在 JavaScript 中檢查排序陣列中的眾數元素


眾數元素

陣列 arr(長度為 l)中的眾數元素是指出現次數超過 l/2 次的元素,因此最多隻有一個這樣的元素。

我們需要編寫一個 JavaScript 函式,例如 isMajority(),它將一個始終按升序排序的陣列 arr 作為第一個引數。

函式的第二個引數將是一個數字,我們將在這個陣列中搜索該數字,如果該數字是眾數元素則返回 true,否則返回 false。

例如 -

如果輸入陣列和數字為 -

const arr = [5, 5, 5, 12, 15];
const num = 5;

則輸出應為 -

const output = true;

因為 5 出現了 3 次,這大於 (5 / 2) = 2.5。(陣列長度的一半)。

給定陣列已排序,如果存在眾數元素,它將始終是中間元素,因為該數字必須跨越至少陣列的一半以上。

我們可以使用此邏輯來檢查給定數字是否為眾數元素。

示例

程式碼如下 -

 線上演示

const arr = [5, 5, 5, 12, 15];
const num = 5;
const isMajority = (arr = [], num = 1) => {
   const { length } = arr;
   if(!length){
      return false;
   };
   const middle = Math.floor(length / 2);
   if(arr[middle] === num){
      return true;
   }else{
      return false;
   };
};
console.log(isMajority(arr, num));

輸出

控制檯輸出將為 -

true

更新於: 2021年2月27日

119 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.