检查JavaScript中排序数组中的多数元素
多数元素:
长度为1的数组arr中的多数元素是出现超过1/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