Je dáno pole celých čísel height délky n. Nakresleno je n svislých čar, přičemž konce i-té čáry jsou v bodech (i, 0) a (i, height[i]). Najděte dvě čáry, které spolu s osou x tvoří kontejner, obsahující maximální množství vody. Vraťte maximální objem vody, který takový kontejner může pojmout. Všimněte si, že kontejner nelze naklonit. Příklad 1: Vstup: height = [1,8,6,2,5,4,8,3,7] Výstup: 49 Vysvětlení: Uvedené svislé čáry jsou reprezentovány polem [1,8,6,2,5,4,8,3,7]. V tomto případě je maximální plocha vody (modrá oblast), kterou může kontejner pojmout, 49. Příklad 2: Vstup: height = [1,1] Výstup: 1 Omezení: n == délka pole height 2 <= n <= 10^5 0 <= height[i] <= 10^4
Python
Uveďte základní principy OOP a stručně je vysvětlete.
Co může způsobit únik paměti, pokud je garbage collector?
Uveďte příklad principu oddělení rozhraní ve standardní knihovně Pythonu.
Jaký je rozdíl mezi threading a asyncio?
Jak bojovat s růstem tabulek v PostgreSQL?
Proč mohou růst GIN indexy?
Jak synchronizovat nebo bezpečně přenášet data mezi více vlákny nebo korutinami?
Jakou datovou strukturu byste použili, pokud byste potřebovali efektivně přidávat a odstraňovat prvky od začátku a od konce?
Jaké knihovny jste použili pro komunikaci s RabbitMQ a Kafka?
Jak probíhá inicializace instance třídy v Pythonu a k čemu slouží __new__?
Proč jsou v Pythonu potřeba dohody o úrovních přístupu private, protected a public?
Co preferujete: asynchronnost nebo vícenásobné vlákno? V čem je rozdíl?
Používali jste vícenásobné dědičství?
Kolik přibližně času uplynulo mezi vznikem chyby a jejím odstraněním?
Kdy a proč volíte threading?
Jak byste ladili test, který neprochází?
Co jsou to stabilní a nestabilní komponenty?
Napište dekorátor rate_limit(max_calls, period), který omezuje počet volání funkce pomocí posuvného okna v čase: ne více než max_calls volání za posledních period sekund. Při překročení limitu by volání nemělo být provedeno. Mějte na paměti, že funkci mohou volat z několika vláken. Příklad: @rate_limit(max_calls=5, period=60) by mělo být odmítnuto šesté volání během minuty.
Co dělat, pokud je SQL dotaz již optimalizován, ale stále je těžký?