Недавно столкнулся с одной проблемой с кодом интервью, в которой был задан вопрос Есть парень, у которого есть лес, где деревья посажены в формате рядов. Каждый ряд должен содержать деревья визуально эстетически приятным способом. например. как показано на изображениях выше:
Выше рисунка дерева никогда не может быть визуально эстетически приятно:
Здесь каждый столбец представляет дерево в строке и его высоту. Никакие два дерева друг за другом не должны быть одинаковой высоты, чтобы сделать ряд визуально эстетически приятным. владелец фермы хочет, чтобы все деревья были визуально эстетичными. и для этого он может срезать самое большее 1 дерево подряд. выясните, сколько способов можно вырезать одно дерево в ряд, чтобы сделать ряд дерева эстетичным.
, даже если какая-то строка уже визуально выглядит эстетически более приятной, а затем верните 0 в качестве вывода функции.
в противном случае, если есть вероятность, что ряд никогда не будет преобразован в визуально эстетический рисунок даже после обрезки какого-либо дерева; тогда функция должна вернуть -1.
например: A [] = {3, 4, 5, 3, 7}; тогда это можно сделать визуально эстетически тремя способами: удалить 3, A [] = {4, 5, 3, 7} еще удалить 4, A [] = {3, 5, 3, 7} еще удалить 5, A [ ] = {3, 4, 3, 7}, поэтому функция должна возвращать 3.
g. B [] = {1, 2, 3, 4, 2, 5}; Этот шаблон никогда не может быть визуально эстетичным, поэтому функция должна возвращать -1.
например. c [] = {1, 3, 1, 2}; этот шаблон уже визуально эстетически приятен, поэтому он должен возвращать 0.
Я попытался решить его, как показано в следующей части решения. Может кто-нибудь предложить более лучший способ решения проблемы, чтобы уменьшить сложность кода и ускорить работу с использованием java? Есть ли какая-то концепция структуры данных, которая может упростить решение этой проблемы за несколько минут, а не такое длинное решение, которое я принял?