Menu
CoddyTech

Container With Most Water

Kamu mendapatkan sebuah list height yang berisi bilangan bulat nonnegatif. Garis i adalah dinding vertikal dengan tinggi height[i] yang berdiri pada posisi i. Dua garis mana pun membentuk sebuah wadah dengan tanah, dan wadah itu dapat menampung air sebanyak tinggi garis yang lebih pendek dikalikan jarak antara kedua garis. Garis lainnya tidak menghalangi. Kembalikan jumlah air terbanyak yang dapat ditampung oleh satu pasangan garis.

Fungsi

maxArea(height: integer-array) → integer
heightinteger-array
tinggi garis pada posisi 0, 1, 2, dan seterusnya
Mengembalikaninteger
jumlah air terbanyak yang dapat ditampung oleh dua garis

Batasan

  • 2 ≤ height.length ≤ 104
  • 0 ≤ height[i] ≤ 104
  • Jawabannya paling besar 108, jadi muat dalam integer 32-bit.

Contoh

Input
height = [3, 7, 2, 5, 4, 7, 3, 6]
Output
36
Penjelasan
Garis pada posisi 1 dan 7, dengan tinggi 7 dan 6, berjarak 6 dan menampung 6 × 6 = 36. Dua garis tertinggi, yaitu yang tingginya 7 pada posisi 1 dan 5, hanya menampung 7 × 4 = 28.
challenge icon

Pertanyaan lanjutan

Di sini, garis-garis di antara keduanya diabaikan. Jika setiap garis berupa batang padat, berapa banyak air yang akan terkumpul di antara semuanya? Bisakah kamu menghitungnya dalam O(n) juga?

Reset kode
def maxArea(height):
    # Tulis kodemu di sini

Tes #1

Tes #2

Argumen

height = [3, 7, 2, 5, 4, 7, 3, 6]

Output yang diharapkan

36