Giả sử có một người đi xe đạp đang đi phượt. Có n điểm khác nhau trong chuyến đi đường của anh ta ở các độ cao khác nhau. Người đi xe đạp bắt đầu chuyến đi của mình từ điểm 0 với độ cao 0. Nếu chúng ta có một chuỗi gọi là độ lợi với n phần tử, độ lợi [i] là độ lợi thực theo độ cao giữa điểm i và i + 1 cho tất cả (0 <=i
Vì vậy, nếu đầu vào giống như gain =[-4,2,6,1, -6], thì đầu ra sẽ là 5, vì các độ cao là [0, -4, -2,4,5, -1] , do đó, giá trị tối đa là 5.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
tối đa:=0
-
run_alt:=0
-
đối với mỗi châu thổ đang đạt được, hãy thực hiện
-
run_alt:=run_alt + delta
-
tối đa:=tối đa của tối đa và run_alt
-
-
trả lại tối đa
Ví dụ (Python)
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def solve(gain): maximum = 0 run_alt = 0 for delta in gain: run_alt += delta maximum = max(maximum, run_alt) return maximum gain = [-4,2,6,1,-6] print(solve(gain))
Đầu vào
[-4,2,6,1,-6]
Đầu ra
5