Phỏng vấn top 150Trung bình

Bóng bay nổ

Hướng dẫn chi tiết và cách triển khai Python cho vấn đề 'Bong bóng nổ'.

Tuyên bố vấn đề

Trung bình

Bạn có n quả bóng bay, được đánh số từ 0 đến n - 1. Mỗi quả bóng được sơn một số trên đó, biểu thị bằng một mảng nums. Bạn được yêu cầu làm nổ tất cả các quả bóng bay.

Nếu bạn làm vỡ quả bóng thứ i, bạn sẽ nhận được nums[i - 1] * nums[i] * nums[i + 1] xu. Nếu i - 1 hoặc i + 1 vượt ra ngoài giới hạn của mảng thì hãy coi nó như thể có một quả bóng có sơn số 1 trên đó.

Trả lại số tiền tối đa bạn có thể thu thập được bằng cách làm nổ bong bóng một cách khôn ngoan.

Viết hàm maxCoins(nums: List[int]) -> int.

Ràng buộc
  • n == len(nums)
  • 1 <= n <= 300
  • 0 <= nums[i] <= 100

Ví dụ

Example 1
Input
nums = [3,1,5,8]
Output
167
Explanation

burst 1 -> burst 5 -> burst 3 -> burst 8. Coins: 3*1*5 + 3*5*8 + 1*3*8 + 1*8*1 = 167.

Example 2
Input
nums = [1,5]
Output
10
Explanation

burst 1 first: 1*5*1 = 5, then burst 5: 1*5*1 = 5. Total = 10.

Need a Hint?
Hãy cân nhắc sử dụng các cấu trúc dữ liệu dành riêng cho 2D DP như tập hợp hoặc đống.
Edge Cases to Watch
  • Cấu trúc đầu vào trống
  • Đầu vào phần tử đơn
  • Giới hạn số lớn

Sẵn sàng để giải quyết?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Mở trong Trình chỉnh sửa
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Tài nguyên Python được đề xuất

Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.