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

Popular posts from this blog

LeetCode 350: Intersection of Two Arrays II

LeetCode 35: Search Insert Position

LeetCode 217: Contains Duplicate