fix findmax for three test cases #1 fix1 #14
1 changed files with 22 additions and 1 deletions
|
@ -7,4 +7,25 @@ def find_maxima(x):
|
||||||
Output:
|
Output:
|
||||||
idx -- list of indices of the local maxima in x
|
idx -- list of indices of the local maxima in x
|
||||||
"""
|
"""
|
||||||
return []
|
idx = []
|
||||||
|
# catch the case when input is an empty list
|
||||||
|
if x == []:
|
||||||
|
return idx
|
||||||
|
|
||||||
|
# catch the case where a maximum is at the edge
|
||||||
|
if len(x) > 1:
|
||||||
|
if x[0] > x[1]:
|
||||||
|
idx.append(0)
|
||||||
|
if x[-1] > x[-2]:
|
||||||
|
idx.append(len(x)-1)
|
||||||
|
|
||||||
|
# if we only have two values, we are done
|
||||||
|
if len(x) == 2:
|
||||||
|
return idx
|
||||||
|
|
||||||
|
# other wise for everything not on the edge:
|
||||||
|
for i in range(1, len(x)-1):
|
||||||
|
if (x[i] > x[i-1]) & (x[i] > x[i+1]):
|
||||||
|
idx.append(i)
|
||||||
|
|
||||||
|
return sorted(idx)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue