Шешімі: Максимальная сумма соседних элементов
Опишите на русском языке или одном из языков программирования алгоритм поиска номера первого из двух последовательных элементов в целочисленном массиве из 30 элементов, сумма которых максимальна (если таких пар несколько, то можно выбрать любую из них).
Шешімін қадамдап көрсету
6 қадамПара последовательных элементов может начинаться с любого нөмір от 1 до 29.
Сначала принимаем первой парой элементы с номерами 1 и 2: сохраняем их сумму и нөмір 1.
Последовательно рассматриваем пары с номерами $(i, i+1)$ для $i$ от 2 до 29. Если текущая сумма больше сохранённого максимума, заменяем максимум и запоминаем номер $i$.
При использовании строгого сравнения $>$ при равных максимальных суммах сохранится номер первой такой пары. Это удовлетворяет условию задачи.
Пример реализации на Python:
После выполнения программы переменная answer содержит нөмір первого элемента искомой пары.
$$answer = 1; maximum = a[0] + a[1]; for i in range(1, 29): s = a[i] + a[i + 1]; if s > maximum: maximum = s; answer = i + 1$$Перебрать 29 пар соседних элементов, сравнивая их суммы, и вывести номер первого элемента пары с максимальной суммой.
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Перебирать индекс до 30 включительно и обращаться к элементу с номером 31.
Выводить нөмір второго элемента пары вместо нөмір первого.
Использовать сравнение $\geq$ вместо $>$, если требуется сохранить первую пару с максимальной суммой.
Инициализировать максимум нулём, поскольку элементы массива могут быть отрицательными.