Cho mảng nums toàn số dương. Tìm tổng lớn nhất của mảng con liên tiếp tăng chặt (nums[i] < nums[i+1]).
Ví dụ: nums = [15,25,35,5,15,55] → mảng con tăng [5,15,55] tổng = 75 (lớn hơn [15,25,35] tổng 75? Đề bài ghi 75).
Thuật toán giải quyết
- total := nums[0], max_total := nums[0].
- Duyệt i từ 1 đến n-1:
- Nếu nums[i] > nums[i-1]: total += nums[i].
- Ngược lại: total = nums[i] (bắt đầu mảng con mới).
- max_total = max(max_total, total).
- Trả về max_total.
Ví dụ triển khai
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