Интуиция за LeetCode 84. Наибольший прямоугольник в гистограммеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Интуиция за LeetCode 84. Наибольший прямоугольник в гистограмме

Сообщение Anonymous »

Стремление к помощи понять интуицию, стоящую за LeetCode 84. Самый большой прямоугольник в гистограмме.
Описание задачи:
Учитывая высоту массива , где каждый элемент представляет высоту гистограммы, найдите область в основном прямого прямого прямого прямого, который может быть сформирован. /> Примеры < /strong> < /h3>

Ввод: [2,1,5,6,2,2,3] < /code>

Выход: 10 < /code>

invallanation: наибольший прямоугольник (область = 10) формируется в баре [5, 6]

Код: Выделить всё

class Solution:
def largestRectangleArea(self, heights: List[int]) -> int:
ans = 0
def myFunc( idx, myMin, length, heights ):
nonlocal ans
endsHere = myMin * length
ans = max( endsHere, ans )
if idx < len( heights ):
if heights[idx] > myMin: myFunc( idx + 1, heights[idx], 1, heights )
myFunc( idx + 1, min( heights[idx], myMin ), length + 1, heights )
myFunc( 0, float('inf'), 0, heights )
return ans
< /code>
Затем мне удалось найти оптимальное решение онлайн: < /p>
class Solution {
public:
int largestRectangleArea(vector& heights) {
int ans = 0;
stack stack;
for (int i = 0; i  heights[i])) {
const int h = heights[stack.top()];
stack.pop();
const int w = stack.empty() ? i : i - stack.top() - 1;
ans = max(ans, h * w);
}
stack.push(i);
}
return ans;
}
};
< /code>
Угадай, что это из -за отсутствия этой интуиции, я не понимаю его описания: < /p>

"Для каждого индекса I храните индекс первой полосы слева и правой, соответственно, что ниже, чем высота [i]. Влево и вправо это короче, чем высота [i] 
для каждого индекса? Что это служит?

Подробнее здесь: https://stackoverflow.com/questions/796 ... -histogram
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Я хочу построить прямоугольник с указанными 4 координатами в текстовом файле в Gnuplot. Прямоугольник может быть под угл
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • C# найти наибольший общий делитель
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • C# найти наибольший общий делитель
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Я пытаюсь получить две функции, чтобы дать мне LCM (наименьшее распространенное множество) и GCD (наибольший общий знаме
    Anonymous » » в форуме C++
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Интуиция расчета значений «не более K» и «не более K-1», чтобы получить ответ «равно K»
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»