如果滿足以下屬性,我們將陣列arr 稱為中心峰值陣列 -
arr.length >= 3
存在一些i 且0
arr[0]
arr[ i] > arr[i 1] > .. . > arr[arr.length - 1]
我們需要寫一個JavaScript 函數,該函數接受數字陣列arr 作為第一個也是唯一的參數。
輸入數組是一個中心峰值數組。我們的函數應該會傳回這個中心峰值數組的峰值索引。
例如,如果函數的輸入是
輸入
const arr = [4, 6, 8, 12, 15, 11, 7, 4, 1];
輸出
const output = 4;
輸出解釋
因為索引4 (15) 處的元素是該陣列的峰值元素。
以下是程式碼 -
現場示範
const arr = [4, 6, 8, 12, 15, 11, 7, 4, 1]; const findPeak = (arr = []) => { if(arr.length < 3) { return -1 } const helper = (low, high) => { if(low > high) { return -1 } const middle = Math.floor((low + high) / 2) if(arr[middle] <= arr[middle + 1]) { return helper(middle + 1, high) } if(arr[middle] <= arr[middle - 1]) { return helper(low, middle - 1) } return middle } return helper(0, arr.length - 1) }; console.log(findPeak(arr));
4
以上是在 JavaScript 中尋找中心峰值數組的峰值的詳細內容。更多資訊請關注PHP中文網其他相關文章!