Постановка задачи –

Дан массив A целых положительных чисел. Ваша задача — найти лидеров в массиве. Элемент массива является лидером, если он больше или равен всем элементам справа от него. Самый правый элемент всегда является лидером.

Решение: -

Просто пройдите по массиву с правой стороны.

Создайте переменную mx и инициализируйте ее с помощью [n-1].

mx=a[n-1]

Создайте новый вектор ответа и поместите эту переменную mx в вектор ответа.

vector<int>ans;
ans.push_back(mx);

Теперь нам нужно проверить каждый элемент, больший или равный текущей переменной mx.

Если текущий элемент меньше переменной mx, пропустите этот элемент и продолжим с этого момента.

for(int i=n-2; i>=0; i--){
   if(a[i]<mx) continue;
}

Теперь нам нужно добавить условие для элемента, который больше или равен текущему mx.

Если текущий элемент больше или равен mx, обновите переменную mx и вставьте этот элемент в вектор.

for(int i=n-2; i>=0; i--){
  if(a[i]<mx) continue;
  mx=a[i]; 
  ans.push_back(mx);
}

Теперь, наконец, нам нужно перевернуть массив, потому что нам нужно вернуть массив слева направо, а наш вектор ответа имеет обход справа налево.

reverse(ans.begin(), ans.end());

Вот полная реализация -

class Solution{
    public:
    vector<int> leaders(int a[], int n){
        int mx=a[n-1];
        vector<int>ans;
        ans.push_back(mx);
        for(int i=n-2; i>=0; i--){
            if(a[i]<mx)
            continue;
            mx=a[i];
            ans.push_back(mx);
        }
        reverse(ans.begin(), ans.end());
        return ans;
    }
};