Giả sử chúng ta có một danh sách các số được gọi là nums. Chúng ta phải tìm giá trị dương nhỏ nhất mà chúng ta có thể chèn vào đầu nums để tổng tiền tố của danh sách kết quả chứa các số đều lớn hơn 0.
Vì vậy, nếu đầu vào là nums =[3, -6, 4, 3], thì đầu ra sẽ là 4, bởi vì nếu chúng ta chèn 4 vào danh sách thì chúng ta có [4, 3, -6, 4, 3] . Bây giờ các tổng tiền tố sau đó là [4, 7, 1, 5, 8], tất cả đều lớn hơn 0.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
chèn 0 vào nums ở vị trí 0
-
đối với tôi trong phạm vi từ 1 đến kích thước của nums - 1, thực hiện
-
nums [i]:=nums [i] + nums [i - 1]
-
-
trả về 1 - tối thiểu là số
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn
def solve(nums): nums.insert(0, 0) for i in range(1, len(nums)): nums[i] += nums[i - 1] return 1 - min(nums) nums = [3, -6, 4, 3] print(solve(nums))
Đầu vào
[3, -6, 4, 3]
Đầu ra
4