Computer >> Máy Tính >  >> Lập trình >> Javascript

JavaScript Xác định mảng có phần tử đa số và trả về TRUE nếu nó nằm trong cùng một mảng

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng số có giá trị lặp lại và trả về số xuất hiện nhiều hơn (n / 2) số lần trong đó n là độ dài của mảng. Nếu không có phần tử như vậy trong mảng, hàm của chúng ta sẽ trả về false

Hãy viết mã cho chức năng này -

Ví dụ

const arr = [12, 5, 67, 12, 4, 12, 4, 12, 6, 12, 12];
const arr1 = [3, 565, 7, 23, 87, 23, 3, 65, 1, 3, 6, 7];
const findMajority = arr => {
   let maxChar = -Infinity, maxCount = 1;
   // this loop determines the possible candidates for majorityElement
   for(let i = 0; i < arr.length; i++){
      if(maxChar !== arr[i]){
         if(maxCount === 1){
            maxChar = arr[i];
         } 0else {
            maxCount--;
      };
      } else {
         maxCount++;
      };
   };
   // this loop actually checks for the candidate to be the majority
   element
   const count = arr.reduce((acc, val) => maxChar===val ? ++acc : acc, 0);
   return count > arr.length / 2;
};
console.log(findMajority(arr));
console.log(findMajority(arr1));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

true
false