LeetCode 704: Binary Search
Question
Given an array of integers nums
which is sorted in ascending order, and an integer target
, write a function to search target
in nums
. If target
exists, then return its index. Otherwise, return -1
.
You must write an algorithm with O(log n)
runtime complexity.
Example 1:
Input: nums = [-1,0,3,5,9,12], target = 9 Output: 4 Explanation: 9 exists in nums and its index is 4
Example 2:
Input: nums = [-1,0,3,5,9,12], target = 2 Output: -1 Explanation: 2 does not exist in nums so return -1
Solution
1-Javascript
/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
function binarySearch(nums, target, start, end) {
if (start > end) return -1;
const middle = parseInt((start + end) / 2);
if (nums[middle] === target) return middle;
if (target < nums[middle]) return binarySearch(nums, target, start, middle - 1);
if (target > nums[middle]) return binarySearch(nums, target, middle + 1, end);
}
var search = function(arr, num) {
return binarySearch(arr, num, 0, arr.length - 1);
};
Comments
Post a Comment