在 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 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告