По заданному массиву целых чисел каждый элемент представляет здание. Например: int buildings[] = {1, 4, 3, 2, 3, 1}.
Если бы я рисовал здания кистью по горизонтали, сколько мазков я бы использовал?
Я должен написать функцию, которая возвращает количество этих мазков. Например 5.
Я могу сделать это легко во время выполнения O(n^2), используя 2 цикла.
-
Внешний цикл работает на уровнях каждого здания (согласно самому высокому зданию).
-
Внутренний цикл выполняется в массиве от
0доnи сравнивает разницу высот (0или1) между двумя ближайшими элементами.
Как я могу сделать это в O(n) времени и O(n) пространстве?
