在 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
广告