Я разрабатываю программу на C++, которая использует STL.C++: Как получить максимальное нечетное число в стеке
ответ
Как просто, как он получает:
int foo(stack<int> stk)
{
int result = 0;
while(!stk.empty())
{
int val = stk.top();
if(val % 2 != 0)
if(val > result)
result = val;
stk.pop();
}
return result;
}
Это скопирует стек, чтобы сохранить оригинальный стек нетронутыми. Если вам не нужно содержимое стека, передайте его по ссылке (int foo(stack<int> & stk
). Если стек может содержать отрицательные числа, введите result
с чем-то вроде INT32_MIN
.
Большое вам спасибо .. он работал очень хорошо – user3479130
Я не знаю, зачем вам это странное число.
Я предполагаю, что вам необходимо поддерживать заказ LIFO, но в какой-то момент потребуется знать максимальное нечетное число. Итак, я бы предложил создать класс оболочки для стека, который следит за этим максимальным нажатием. Таким образом, вы получите максимум в O (1).
Let be WStack<int>
этот класс.
Его конструктор будет иметь элемент данных, называемый max_odd
который может быть инициализирован следующим образом:
max_odd = numeric_limits<int>::min();
if (max_odd % 2 == 0)
++max_odd
Теперь вы можете написать метод push()
таким образом:
void WStack<int>::push(int item)
{
s.push(item); // s is a data member of type stack<int>
if (item % 2 != 0
max_odd = max(max_odd, item);
}
Наконец, последний метод наблюдатель для максимального нечетного числа:
int WStack<int>::get_max_odd() const { return max_odd; }
Однако эта оболочка правильна только в том случае, если и только она уверена, что нечетные числа будут нажаты. Вы можете решить эту проблему, поставив некоторый логический флаг и, в конце концов, выбросив исключение, если какое-либо нечетное число не было вставлено и ваш звонок get_max_odd()
- 1. получить максимальное нечетное число
- 2. как найти максимальное число переменных в стеке
- 3. Максимальное число «C»
- 4. Показать номера нечетное число раз в C
- 5. отрицательное число в стеке
- 6. java получить четное или нечетное число
- 7. JavaScript возвращает нечетное число
- 8. Упакуйте число в нечетное число бит.
- 9. org.apache.commons.codec.DecoderException: Нечетное число символов
- 10. Нечетное или даже шестнадцатеричное число?
- 11. Как получить следующее доступное максимальное число?
- 12. Как получить следующее максимальное число из datatable
- 13. Нечетное целое число java
- 14. Как определить нечетное число из отображаемой последовательности в C?
- 15. Как проверить нечетное число цифр в Java?
- 16. XNA C# Найти максимальное число в целое число
- 17. vbscript regexp - нечетное число повторений
- 18. Pascal - нечетное и четное число
- 19. Как подсказать пользователю номер, пока не выберет Нечетное число? C++
- 20. Список не заполняет максимальное пространство в стеке
- 21. Максимальное количество, которое нужно выделить в стеке
- 22. Выберите наибольшее нечетное число python
- 23. Почему `object_id`` Fixnum` нечетное число?
- 24. Максимальное целое число в Javascript
- 25. Regex: нечетное число вхождений полукокса
- 26. Судья число нечетное или четное
- 27. Получить максимальное число из буквенно-цифровой колонки
- 28. Получить максимальное число row_number внутри креста apply
- 29. Как проверить, имеет ли строка нечетное число?
- 30. Максимальное число arraylist
[Что вы пробовали?] (Http://mattgemmell.com/what-have -you-try /) – Drop
Вы не можете сделать это за один шаг или цикл, вы должны сделать это, используя временный стек. –
Вам нужно сохранить номера в stk нетронутыми? – SingerOfTheFall