1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#!/usr/bin/env python
from functools import reduce
from functools import reduce
def add_max(x, y):
global max_alt
max_alt = max(max_alt, x+y)
return x+y
def peak_point(gain):
global max_alt
max_alt = 0 # initialize global to 0
reduce(add_max, gain)
return max_alt
def int_join(joiner, arr):
return joiner.join(map(lambda i: str(i), arr))
def solution(gain):
print(f'Input: @gain = ({int_join(", ", gain)})')
print(f'Output: {peak_point(gain)}')
print('Example 1:')
solution([-5, 1, 5, -9, 2])
print('\nExample 2:')
solution([10, 10, 10, -25])
print('\nExample 3:')
solution([3, -4, 2, 5, -6, 1])
print('\nExample 4:')
solution([-1, -2, -3, -4])
print('\nExample 5:')
solution([-10, 15, 5])
|