Giả sử chúng ta có một mảng các giá trị dương được gọi là num, chúng ta phải tìm tổng lớn nhất có thể có của một mảng con tăng dần trong nums. Chúng ta có thể nói một mảng con [nums_l, nums_l + 1, ..., nums_r-1, nums_r] tăng dần khi đối với tất cả các i trong đó l <=i
Vì vậy, nếu đầu vào là nums =[15,25,35,5,15,55], thì đầu ra sẽ là 75 vì [5,15,55] đang tăng mảng con với tổng tối đa.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
tổng:=nums [0]
max_total:=nums [0]
đối với tôi trong phạm vi từ 1 đến kích thước của nums, hãy thực hiện
nếu nums [i]> nums [i-1], thì
tổng:=total + nums [i]
nếu không,
tổng:=nums [i]
nếu tổng số> max_total thì
max_total:=tổng số
trả về max_total
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
def solve(nums):
total=nums[0]
max_total=nums[0]
for i in range(1,len(nums)):
if nums[i] > nums[i-1]:
total+=nums[i]
else:
total=nums[i]
if total > max_total:
max_total=total
return max_total
nums = [15,25,35,5,15,55]
print(solve(nums))
Đầu vào
[15,25,35,5,15,55]
Đầu ra
75