Упражнения на C ++: поиск следующего большего элемента каждого элемента данного массива целых чисел
C ++ Array: Упражнение-8 с решением
Напишите программу на C ++, чтобы найти следующий больший элемент каждого элемента данного массива целых чисел. Игнорируйте те элементы, которые не имеют большего элемента.
Пример решения:
Код C ++:
#include<bits/stdc++.h>
using namespace std;
void next_greater(int nums[], int n)
{
stack<int> data_stack;
data_stack.push(nums[0]);
for (int i=1; i<n; i++)
{
int next_element = nums[i];
if (data_stack.empty() == false)
{
int array_element = data_stack.top();
data_stack.pop();
while (array_element < next_element)
{
cout << array_element << ": " << next_element
<< endl;
if (data_stack.empty() == true)
break;
array_element = data_stack.top();
data_stack.pop();
}
if (array_element > next_element)
data_stack.push(array_element);
}
data_stack.push(next_element);
}
}
int main()
{
int nums[] = {4, 1, 5, 9, 12, 9, 22, 45, 7};
int n = sizeof(nums)/sizeof(nums[0]);
cout << "Original array: ";
for (int i=0; i < n; i++)
cout << nums[i] <<" ";
cout << "\nNext Greater Element:\n";
next_greater(nums, n);
}
Пример вывода:
Исходный массив: 4 1 5 9 12 9 22 45 7 Следующий Большой Элемент: 1: 5 4: 5 5: 9 9:12 9:22 12: 22 22: 45
Блок - схема:
Редактор кода C ++:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на C ++, чтобы найти наиболее часто встречающийся элемент в массиве целых чисел.
Далее: Напишите программу на C ++ для сортировки заданного несортированного массива целых чисел в форме волны.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code