Menu
CoddyTech

Rod Cutting Problem

Trung bìnhQuy hoạch độngpython iconjava iconcpp iconc iconjs icon+10

Bạn có một thanh có độ dài n, trong đó n = prices.length. Một đoạn có độ dài k bán được với giá prices[k-1]. Bạn có thể cắt thanh thành bao nhiêu đoạn tùy thích, mỗi đoạn có độ dài nguyên, hoặc bán nguyên thanh. Hãy trả về số tiền nhiều nhất bạn có thể kiếm được bằng cách bán toàn bộ thanh.

Hàm

cutRod(prices: integer-array) → integer
pricesinteger-array
prices[k-1] là giá của một đoạn có độ dài k; thanh dài prices.length
Trả vềinteger
số tiền tối đa mà cả cây cần câu có thể kiếm được

Ràng buộc

  • 1 ≤ prices.length ≤ 1000
  • 1 ≤ prices[i] ≤ 105

Ví dụ

Đầu vào
prices = [2, 5, 7, 8]
Đầu ra
10
Giải thích
Bán hai đoạn dài 2 thu được 5 + 5 = 10. Bán nguyên thanh kiếm được 8, còn bán một đoạn dài 1 và một đoạn dài 3 thu được 2 + 7 = 9.
challenge icon

Câu hỏi mở rộng

Nếu bạn có thể cắt thanh gỗ nhiều nhất m lần thì sao? Khi đó, mỗi mục trong bảng cần biết điều gì?

Đặt lại code
def cutRod(prices):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

prices = [2, 5, 7, 8]

Đầu ra mong đợi

10