Salut,
Recherchez-vous une structure de données qui stocke des valeurs uniques, vous permet d'insérer des valeurs, de rechercher le nombre total de valeurs et de supprimer des valeurs ? Le choix idéal pour cela est un Set. De nombreux langages de programmation incluent une structure de données Set intégrée, et JavaScript ne fait pas exception. Examinons plus en détail le fonctionnement des ensembles.
Qu'est-ce que Définir ?
Le Set est une structure de données qui vous permet de stocker des valeurs uniques de tout type, qu'il s'agisse de valeurs primitives ou de références d'objet. L'ensemble permet des opérations d'insertion, de suppression, de mise à jour et de taille avec une complexité temporelle O(1). Ce qui rend l'installation plus rapide et efficace.
Les ensembles sont conçus pour offrir des temps d'accès rapides. Ils sont généralement mis en œuvre de manière à accélérer la recherche des éléments plutôt que de simplement vérifier chaque élément un par un. L'implémentation typique peut être une table de hachage (recherche O(1)) ou un arbre de recherche (recherche O(log(N))).
Points clés
Méthodes de base
Exemples
// 1. Create a new Set and use the .add() method to add elements const mySet = new Set(); mySet.add(10); mySet.add(20); mySet.add(30); console.log(mySet); // Output: Set { 10, 20, 30 } // 2. Check if the Set has a specific element using .has() method console.log(mySet.has(20)); // Output: true console.log(mySet.has(40)); // Output: false // 3. Delete an element from the Set using .delete() method mySet.delete(20); console.log(mySet); // Output: Set { 10, 30 } // 4. Iterate over the Set using .keys() method // In Sets, .keys() and .values() do the same thing for (const key of mySet.keys()) { console.log(key); } // Output: // 10 // 30 // 5. Get the size of the Set using .size property console.log(mySet.size); // Output: 2
Exemple d'ensemble avec problème de leetcode :
3. Sous-chaîne la plus longue sans caractères répétitifs
Étant donné une chaîne s, recherchez la longueur de la sous-chaîne la plus longue sans répéter de caractères.
Solution
/** * @param {string} s * @return {number} */ var lengthOfLongestSubstring = function(s) { let set = new Set(); let ans = 0; let s_index = 0; for (let i = 0; iExplication:
La fonction lengthOfLongestSubstring utilise une technique de fenêtre glissante avec un Set pour trouver la sous-chaîne la plus longue sans répéter de caractères :
C'est tout, si vous avez des doutes, des suggestions ou quoi que ce soit, n'hésitez pas à ajouter des commentaires.
Sources :
MDN (Ensemble)
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3