From 0b3afdad0ea7c882697cc6f8cb7b41aac64e14f1 Mon Sep 17 00:00:00 2001 From: ashwin7mak Date: Fri, 15 Mar 2019 12:58:32 -0700 Subject: [PATCH] Updated solution using Binary Search approach --- .../Find Peak Element/find-peak-element.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Algorithms/Find Peak Element/find-peak-element.js b/Algorithms/Find Peak Element/find-peak-element.js index c716514..1961ecb 100644 --- a/Algorithms/Find Peak Element/find-peak-element.js +++ b/Algorithms/Find Peak Element/find-peak-element.js @@ -8,10 +8,15 @@ */ var findPeakElement = function(nums) { - var len = nums.length; - nums[-1] = nums[len] = -Number.MAX_VALUE; - for(var i = 0; i < len; i++) { - if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) - return i; - } + let mid, left = 0, right = nums.length - 1; + while(left < right) { + mid = Math.floor((left + right) / 2); + + if(nums[mid] > nums[mid + 1]) { + right = mid; + } else { + left = mid + 1; + } + } + return left; };