У меня на следующей неделе есть финалы, и я собираюсь пройти старые записи и домашние задания/экзамены, пытающиеся учиться. На моей второй домашней работе у меня есть вопрос, что я ошибся, и я просто не уверен, что именно делать. Вот проблема:Нахождение максимального значения A [J] + - A [I]
Разработка эффективных алгоритмов, которые принимают массив положительных чисел 'a', и определяют: a. максимальное значение a [j] + a [i], где j> or = to i. b. максимальное значение a [j] - a [i], где j> or = to i.
Мне не нужен фактический код, просто какой-то псевдокод и время его работы.
То, что я думал, что будет работать:
Найти первый, второй и третий максимум и минимум значений. Затем выполните: a. сначала max a (j) + second max a (i), для j> = i. b. сначала max a (j) - первый min a (i), для j> = i
А затем просто повторите со вторым max, min, если вышеописанное условие не работает.
Я не знаю, почему я не могу обмотать голову вокруг этого. Я знаю, что j может быть равным i, поэтому мой ответ даст неверный результат для части a. Для части b предположим, что у меня есть массив [89 | 90 | 1 | 2 | 3 | 4 | 5], он будет равен 90 - 1 = 89, но он должен быть 5 - 1 = 4. Я даже не пытался подумать о времени выполнения, поскольку эта часть ошибочна.
Любая помощь или подсказки были бы замечательными. Спасибо!
Несомненно, первый из них в два раза больше максимального элемента? – Jems