Se le da una array de n elementos. Un extremo es un elemento que es mayor que sus dos vecinos o menor que sus dos vecinos. Tienes que calcular el número de extremos locales en una array dada.
Nota: los elementos primero y último no son extremos.
Ejemplos:
Input : a[] = {1, 5, 2, 5} Output : 2 Input : a[] = {1, 2, 3} Output : 0
Enfoque: para calcular el número de extremos, debemos verificar si un elemento es máximo o mínimo, es decir, si es mayor que sus dos vecinos o menor que ambos vecinos. Para esto, simplemente itere sobre la array y para cada elemento verifique su posibilidad de ser un extremo.
Nota: a[0] y a[n-1] tienen exactamente un vecino cada uno, no son mínimos ni máximos.
C++
// CPP to find number // of extrema #include <bits/stdc++.h> using namespace std; // function to find // local extremum int extrema(int a[], int n) { int count = 0; // start loop from position 1 // till n-1 for (int i = 1; i < n - 1; i++) { // only one condition // will be true at a // time either a[i] // will be greater than // neighbours or less // than neighbours // check if a[i] is greater // than both its neighbours // then add 1 to x count += (a[i] > a[i - 1] && a[i] > a[i + 1]); // check if a[i] is // less than both its // neighbours, then // add 1 to x count += (a[i] < a[i - 1] && a[i] < a[i + 1]); } return count; } // driver program int main() { int a[] = { 1, 0, 2, 1 }; int n = sizeof(a) / sizeof(a[0]); cout << extrema(a, n); return 0; }
Producción :
2
Consulte el artículo completo sobre Número de extremos locales en una array para obtener más detalles.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA