Нахождение наибольшего числа в векторе

Найдите максимальный элемент через std::max_element и отдельно обработайте пустой вектор. Возвращать 0 по умолчанию неверно: все элементы могут быть отрицательными.

Короткий ответ

Что ответить на собеседовании

Найдите максимальный элемент через std::max_element и отдельно обработайте пустой вектор. Возвращать 0 по умолчанию неверно: все элементы могут быть отрицательными.

Подробный разбор

Ответ с пояснениями

Условие

Составьте функцию findMaximum, принимающую константную ссылку на std::vector<int> и возвращающую максимальное значение из переданного контейнера.

int findMaximum(const std::vector<int>& data)
{
    // реализовать
}

Ответ

Найдите максимальный элемент через std::max_element и отдельно обработайте пустой вектор. Возвращать 0 по умолчанию неверно: все элементы могут быть отрицательными.

#include <algorithm>
#include <stdexcept>
#include <vector>

int findMaximum(const std::vector<int>& data) {
    if (data.empty()) throw std::invalid_argument("empty vector");
    return *std::max_element(data.begin(), data.end());
}

Контракт здесь использует исключение при отсутствии результата. Если исключения нежелательны, можно изменить тип возврата на optional. Поиск выполняется за O(n) времени с O(1) дополнительной памятью и не меняет входной вектор.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее