mirror of
https://github.com/prdlk/leetcode.git
synced 2026-09-17 07:26:27 +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