diff --git a/hands_on/local_maxima/local_maxima.py b/hands_on/local_maxima/local_maxima.py index 1575179..ded154d 100644 --- a/hands_on/local_maxima/local_maxima.py +++ b/hands_on/local_maxima/local_maxima.py @@ -19,4 +19,12 @@ def local_maxima(x): Output: idx -- list of indices of the local maxima in x """ - return [] + n = len(x) + + rv = [i for i in range(n) + if i==0 and x[i] > x[i+1] + or i==(n-1) and x[i-1] < x[i] + or 0= x[i+1] + ] + + return rv diff --git a/hands_on/local_maxima/test_local_maxima.py b/hands_on/local_maxima/test_local_maxima.py index 5428945..b8caf68 100644 --- a/hands_on/local_maxima/test_local_maxima.py +++ b/hands_on/local_maxima/test_local_maxima.py @@ -23,5 +23,7 @@ def test_local_maxima_edges(): def test_local_maxima_plateau(): - raise Exception('not yet implemented') - + values = [1,2,2,1] + expected = [1,2] + maxima = local_maxima(values) + assert maxima == expected