mirror of
https://github.com/prdlk/leetcode.git
synced 2026-09-16 23:16:26 +00:00
feat(problems): add binary search solution for LeetCode 704
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* 704. Binary Search
|
||||
* Difficulty: Easy
|
||||
* https://leetcode.com/problems/binary-search/
|
||||
*
|
||||
* ──────────────────────────────────────────────────
|
||||
*
|
||||
* 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
|
||||
*
|
||||
*
|
||||
*
|
||||
* Constraints:
|
||||
*
|
||||
* • 1 <= nums.length <= 10^4
|
||||
*
|
||||
* • -10^4 < nums[i], target < 10^4
|
||||
*
|
||||
* • All the integers in nums are unique.
|
||||
*
|
||||
* • nums is sorted in ascending order.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {number[]} nums
|
||||
* @param {number} target
|
||||
* @return {number}
|
||||
*/
|
||||
var search = function(nums, target) {
|
||||
let left = 0;
|
||||
let right = nums.length - 1;
|
||||
|
||||
while(left <= right) {
|
||||
const mid = left + Math.floor((right - left) / 2);
|
||||
if (nums[mid] === target) {
|
||||
return mid;
|
||||
} else if(nums[mid] < target){
|
||||
left = mid + 1;
|
||||
} else if (nums[mid] > target) {
|
||||
right = mid - 1;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
Reference in New Issue
Block a user