Maison >interface Web >Questions et réponses frontales >Comment trouver le mode en javascript

Comment trouver le mode en javascript

藏色散人
藏色散人original
2022-01-19 15:12:042464parcourir

Comment trouver le mode en JavaScript : 1. Créez un nouveau tableau ; 2. Comptez le nombre de fois où chaque valeur apparaît 3. Parcourez le tableau et trouvez le mode.

Comment trouver le mode en javascript

L'environnement d'exploitation de cet article : Système Windows 7, javascript version 1.8.5, ordinateur DELL G3

Comment trouver le mode avec javascript ?

Trouver le mode de LeetCode - Implémentation JavaScript

Trouver le mode

Étant donné un tableau de taille n, trouvez le mode. Le mode fait référence aux éléments qui apparaissent à plus de ⌊ n/2 ⌋ dans le tableau.

Vous pouvez supposer que le tableau n'est pas vide et qu'il existe toujours un mode pour un tableau donné.

Exemple 1 :

Entrée : [3,2,3]
Sortie : 3

Exemple 2 :

Entrée : [2,2,1,1,1,2,2]
Sortie : 2

Mes pensées :
Créez un nouveau tableau, comptez le nombre de fois où chaque valeur apparaît, puis parcourez le tableau pour trouver le mode.

const majorityElement = function (nums) {
    let arry = []
    for (let i in nums) {
        if (!arry[nums[i]]) {
            arry[nums[i]] = !!arry[nums[i]] + 1
        }else {
            arry[nums[i]] ++
        }
    }
    for(let i in arry){
        if(arry[i] > nums.length/2){
            return i
        }
    }
};

La solution la plus rapide au leetcode:

Idées de résolution de problèmes:
Utilisez un compteur et une valeur intermédiaire, rendez d'abord la valeur intermédiaire égale au premier bit du tableau, et lors d'un parcours, si vous rencontrer le même Laissez le compteur augmenter de un, et s'il est différent, diminuez-le de un. Lorsqu'il diminue à 0, il est remplacé par la valeur actuellement parcourue. Une fois le parcours terminé, la valeur intermédiaire est renvoyée. le mode. [Apprentissage recommandé : "Tutoriel de base js"]

Ça fait très étrange, il y a une idée de décalage dedans

var majorityElement = function(nums) {
    let count = 0;
    let majority = nums[0];
    
    for (let i = 0; i < nums.length; i++) {
        if (count === 0) {
            majority = nums[i];
        }
        
        if (majority === nums[i]) {
            count++;
        } else {
            count--;
        }
    }
    return majority;
};

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn