Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm tổng lớn nhất của mảng con tăng dần bằng Python

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