BBarCumulus
Không gian lập trình với AI

Hình chữ nhật lớn nhất trong biểu đồ cột

Tìm hình chữ nhật lớn nhất dưới các cột rộng một đơn vị với tối đa 256 chiều cao nguyên từ không đến 1000000.

● ● ●BarCumulus●
Quy trình · Hình chữ nhật lớn nhất trong biểu đồ cột ×
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
✳Tìm hình chữ nhật lớn nhất dưới các cột rộng một đơn vị với tối đa 256 chiều cao nguyên từ không đến 1000000.
✓ Thay đổiKiểm tra trước khi áp dụng ↗
Minh họa không gian làm việc
01

Dự án

Kiểm tra đầu vào rỗng và chiều cao bằng nhau, từ chối giá trị âm hoặc Boolean mà không đổi đầu vào.

02

Kiểm tra trước khi áp dụng

So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.

03

Mô hình

Cấu hình endpoint tương thích OpenAI hoặc Anthropic bằng URL cơ sở và khóa API nếu cần. Kiểm tra kết nối. Máy chủ mô hình cục bộ phải đang chạy; công cụ từ xa có thể truyền dữ liệu riêng.

Quy trình

Hình chữ nhật lớn nhất trong biểu đồ cột

Quy trình ↗
Quy trình
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
Không gian lập trình với AI

Hỏi điều gì phải được giữ nguyên trước khi đổi cấu trúc mã

BarCumulus là không gian lập trình AI trên Windows để rà soát thay đổi cách triển khai mà không đánh mất hành vi cần giữ. Mở thư mục dự án và giải thích vì sao bạn muốn tái cấu trúc: trạng thái rõ hơn, hàm hỗ trợ nhỏ hơn hoặc cách kiểm thử dễ hơn. Yêu cầu mô hình xem giao ước hiện có trước khi đề xuất phương án thay thế.

Bạn có thể kết nối mô hình AI không kiểm duyệt nếu điểm cuối tương thích OpenAI hoặc Anthropic được hỗ trợ của bạn cung cấp. Thêm thông tin xác thực khi cần. Các hạn chế của nhà cung cấp, năng lực công cụ và giới hạn ngữ cảnh vẫn có hiệu lực, nên dùng cuộc trao đổi để xây dựng lập luận có thể rà soát thay vì xem cách triển khai trông khác là tự thân một cải tiến.

Tính hình chữ nhật lớn nhất trên các chiều cao cột là một ví dụ có thể đưa vào. Yêu cầu rà soát cách mã xử lý các đoạn bằng nhau, đầu vào rỗng và phần việc còn chờ cuối cùng. Cung cấp dữ liệu kiểm thử nhỏ có kết quả kiểm tra thủ công, rồi hỏi mô hình phần nào của đề xuất tái cấu trúc giữ nguyên các trường hợp đó và phần nào thay đổi chúng.

Xem bản khác biệt và chạy kiểm tra dự án trên đúng phiên bản bạn định giữ. Với thay đổi phức tạp, so sánh với cách triển khai đơn giản độc lập trên đầu vào nhỏ. So sánh đó là bằng chứng trong phạm vi đã kiểm thử; nó không biến không gian lập trình thành hệ thống chứng minh tự động.

Giữ trách nhiệm kiểm chứng khi tái cấu trúc

Lý do hữu ích để yêu cầu tái cấu trúc thuật toán là gì?

Nêu vấn đề bảo trì bạn có thể đánh giá, như chuyển trạng thái khó hiểu hoặc xử lý lặp lại. Yêu cầu đề xuất nhỏ nhất giải quyết nó. Phương án thay thế cần chứng tỏ giá trị bằng tính dễ đọc và hành vi đã kiểm chứng, không chỉ bằng sự mới lạ.

Vì sao thêm cột bằng chiều cao vào dữ liệu kiểm thử?

Các giá trị bằng nhau có thể làm lộ giả định về lúc giữ hay bỏ trạng thái đang chờ. Thêm đoạn bằng nhau ngắn có kết quả mong đợi đã biết. Yêu cầu mô hình giải thích trường hợp đó theo cách triển khai đề xuất trước khi xem ví dụ lớn hơn.

Kiểm thử đối chiếu có chứng minh hai cách triển khai tương đương không?

Nó hỗ trợ tính tương đương trên đầu vào đã kiểm thử và có thể phát hiện sai khác. Giữ rõ phạm vi đầu vào và cách triển khai tham chiếu, đồng thời điều tra khác biệt. Đừng mô tả kiểm thử hữu hạn là chứng minh cho mọi đầu vào mà hàm thực tế chấp nhận.

Tôi nên rà soát tập lệnh so sánh được đề xuất thế nào?

Đọc giới hạn đầu vào và kế hoạch thực thi trước khi chạy. Xác nhận cả đích đến công cụ: suy luận mô hình cục bộ cần máy chủ riêng và không làm mọi công cụ thực thi được kết nối trở thành cục bộ. Chủ động giữ khối lượng kiểm thử nhỏ.

Tải cho Windows ↗

BarCumulus · Cập nhật 2026-10-25