BBarCumulus
Ruang kerja kode dengan AI

Persegi panjang maksimum histogram

Cari persegi panjang terbesar di bawah batang selebar satu dengan maksimal 256 tinggi bilangan bulat dari nol hingga 1000000.

● ● ●BarCumulus●
Alur kerja · Persegi panjang maksimum histogram ×
def histogram_area(heights):
    heights = tuple(heights)
    if len(heights) > 256 or any(type(h) is not int or not 0 <= h <= 1000000 for h in heights):
        raise ValueError("height.range")
    stack, best = [], 0
    for i in range(len(heights) + 1):
        current = heights[i] if i < len(heights) else 0
        while stack and heights[stack[-1]] > current:
            height = heights[stack.pop()]
            start = stack[-1] + 1 if stack else 0
            best = max(best, height * (i - start))
        stack.append(i)
    return best
✳Cari persegi panjang terbesar di bawah batang selebar satu dengan maksimal 256 tinggi bilangan bulat dari nol hingga 1000000.
✓ PerubahanTinjau sebelum menerapkan ↗
Ilustrasi ruang kerja
01

Proyek

Uji masukan kosong dan tinggi sama, lalu tolak nilai negatif atau boolean tanpa mengubah masukan.

02

Tinjau sebelum menerapkan

Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.

03

Model

Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.

Alur kerja

Persegi panjang maksimum histogram

Alur kerja ↗
Alur kerja
def histogram_area(heights):
    heights = tuple(heights)
    if len(heights) > 256 or any(type(h) is not int or not 0 <= h <= 1000000 for h in heights):
        raise ValueError("height.range")
    stack, best = [], 0
    for i in range(len(heights) + 1):
        current = heights[i] if i < len(heights) else 0
        while stack and heights[stack[-1]] > current:
            height = heights[stack.pop()]
            start = stack[-1] + 1 if stack else 0
            best = max(best, height * (i - start))
        stack.append(i)
    return best
Ruang kerja kode dengan AI

Tanyakan apa yang harus dipertahankan sebelum mengubah bentuk kode

BarCumulus adalah ruang kerja pemrograman AI Windows untuk meninjau perubahan implementasi tanpa kehilangan perilaku yang harus dipertahankan. Buka folder proyek dan jelaskan alasan refaktorisasi: keadaan yang lebih jelas, fungsi bantu lebih kecil, atau pengujian lebih mudah. Minta model memeriksa kontrak yang ada sebelum mengusulkan pengganti.

Anda dapat menghubungkan model AI tanpa sensor jika ditawarkan melalui endpoint yang kompatibel dengan OpenAI atau endpoint Anthropic yang didukung. Tambahkan kredensial bila perlu. Batasan penyedia, kemampuan alat, dan batas konteksnya tetap berlaku, jadi gunakan percakapan untuk mengembangkan alasan yang dapat ditinjau, bukan menganggap implementasi yang tampak berbeda sebagai perbaikan dengan sendirinya.

Perhitungan persegi panjang maksimum pada tinggi batang adalah salah satu contoh. Mintalah peninjauan cara kode menangani deretan tinggi yang sama, masukan kosong, dan pekerjaan akhir yang masih tertunda. Sertakan kasus uji kecil dengan hasil diperiksa manual, lalu tanyakan bagian refaktorisasi usulan yang mempertahankan kasus tersebut dan bagian yang mengubahnya.

Periksa perbedaan kode dan jalankan pemeriksaan proyek pada versi yang sama dengan yang akan Anda simpan. Untuk perubahan rumit, bandingkan dengan implementasi sederhana independen pada masukan kecil. Perbandingan itu merupakan bukti dalam rentang yang diuji; tidak menjadikan ruang kerja pemrograman sistem pembuktian otomatis.

Memastikan refaktorisasi dapat dipertanggungjawabkan

Apa alasan yang berguna untuk meminta refaktorisasi algoritma?

Sebutkan masalah pemeliharaan yang dapat dinilai, seperti transisi keadaan tidak jelas atau penanganan berulang. Mintalah usulan terkecil yang mengatasinya. Pengganti harus layak melalui keterbacaan dan perilaku terverifikasi, bukan kebaruan saja.

Mengapa menyertakan batang sama tinggi dalam contoh kasus uji?

Nilai sama dapat mengungkap asumsi tentang kapan keadaan tertunda dipertahankan atau dihapus. Sertakan deretan pendek sama tinggi dengan hasil harapan diketahui. Minta model menjelaskan kasus itu terhadap implementasi usulan sebelum meninjau contoh lebih besar.

Apakah pengujian diferensial membuktikan dua implementasi setara?

Pengujian itu mendukung kesetaraan untuk masukan yang diuji dan dapat mengungkap perbedaan. Jaga rentang masukan dan implementasi acuan tetap terlihat, lalu selidiki perbedaannya. Jangan menyebut pengujian terbatas sebagai bukti untuk setiap kemungkinan masukan yang diterima fungsi produksi.

Bagaimana meninjau skrip perbandingan yang diusulkan?

Baca batas masukan dan rencana eksekusinya sebelum menjalankan. Pastikan juga tujuan alat: inferensi model lokal memerlukan server terpisah dan tidak menjadikan setiap alat eksekusi terhubung bersifat lokal. Sengaja batasi beban pengujian agar kecil.

Unduh untuk Windows ↗

BarCumulus · Diperbarui 2026-10-25