Найти максимальные значения в массиве - PullRequest
0 голосов
/ 27 марта 2020

Я не могу найти правильные слова, чтобы описать мою проблему. У меня есть массив значений, которые увеличиваются «в группах / локально»:

[1,2,3,4,5, 2,3,4,5, 4,5,6,6,10, 0,100,1000, 999]

Я хочу извлечь максимум из каждой «локальной группы», поэтому для приведенного выше примера ответ будет:

[5,5,10,1000,999]

Я могу перебрать и найти пары, где previous.value >= next.value, нарезать их и извлечь max из каждой группы, но я хочу узнать лучший способ :). Если вы знаете название этой проблемы, пожалуйста, поделитесь

1 Ответ

0 голосов
/ 27 марта 2020
#include<iostream>
using namespace std;
#define ll long long int
int main(){
    ll n;
    //length of an array
    cin>>n;
    ll a[n];
    ll i;
    for(i=0;i<n;i++){
        cin>>a[i];
    }
    for(i=1;i<n;i++){
        if(a[i]<a[i-1]){
            cout<<a[i-1]<<" ";
        }
    }
    //Last element always be a local maximum
    cout<<a[n-1]; 
   //I think this will help you
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...