Maison > interface Web > js tutoriel > Trouver le sommet d'un tableau de pics centraux en JavaScript

Trouver le sommet d'un tableau de pics centraux en JavaScript

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-08-24 12:21:07
avant
928 Les gens l'ont consulté

在 JavaScript 中查找中心峰值数组的峰值

Center Peak Array

Si les propriétés suivantes sont satisfaites, nous appelons le tableau arr comme Center Peak Array -

  • arr.length >= 3

  • Il y a des i et 0

    • arr[0]

    • arr[ i] > arr[i+ 1] > .. > arr[arr.length - 1]

Question

Nous devons écrire une fonction JavaScript qui accepte un tableau numérique arr comme premier et unique paramètre.

Le tableau d'entrée est un tableau à crête centrale. Notre fonction devrait renvoyer l'indice de pic de ce tableau de pics central.

Par exemple, si l'entrée de la fonction est

input

const arr = [4, 6, 8, 12, 15, 11, 7, 4, 1];
Copier après la connexion

output

const output = 4;
Copier après la connexion

explication de la sortie

car l'élément à l'index 4 (15) est l'élément de pointe de ce tableau.

Exemple

Voici le code -

Démonstration en direct

const arr = [4, 6, 8, 12, 15, 11, 7, 4, 1];
const findPeak = (arr = []) => {
   if(arr.length < 3) {
      return -1
   }
   const helper = (low, high) => {
      if(low > high) {
         return -1
      }
      const middle = Math.floor((low + high) / 2)
      if(arr[middle] <= arr[middle + 1]) {
         return helper(middle + 1, high)
      }
      if(arr[middle] <= arr[middle - 1]) {
         return helper(low, middle - 1)
      }
      return middle
   }
   return helper(0, arr.length - 1)
};
console.log(findPeak(arr));
Copier après la connexion

Sortie

4
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal