852. 山脈陣列的峰頂索引(JavaScript)
阿新 • • 發佈:2019-02-07
我們把符合下列屬性的陣列 A
稱作山脈:
A.length >= 3
- 存在
0 < i < A.length - 1
使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]
給定一個確定為山脈的陣列,返回任何滿足 A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]
的 i
的值。
示例 1:
輸入:[0,1,0] 輸出:1
示例 2:
輸入:[0,2,1,0] 輸出:1
提示:
3 <= A.length <= 10000
- 0 <= A[i] <= 10^6
- A 是如上定義的山脈
思路:
其實就是返回最大值的索引,那第一步就先求最大值,第二部用索引。
這裡由於Math.max()接受的引數是數值型,不可以是陣列,即 Math.max(1, 2, 3) 為 3,那麼可以使用陣列的 reduce 函式,reduce函式是一次將陣列的兩個數進行某種函式的作用輸出一個數,再和下一個數作為某種函式的輸入得到一個輸出,最終得到的是一個數值,這個某種函式就是Math.max()。
第二部索引直接 A.indexOf(max) 即可。
/** * @param {number[]} A * @return {number} */ var peakIndexInMountainArray = function(A) { var max = A.reduce((x,y) => Math.max(x,y)); return A.indexOf(max); };