From 4065de560eb7ac93272f51dfee9c80f388c9b5cb Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Wed, 19 Aug 2026 14:40:58 -0400 Subject: [PATCH] feat(problems): add binary search solution for LeetCode 704 --- work/Easy/Array/704.binary-search.js | 61 ++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 work/Easy/Array/704.binary-search.js diff --git a/work/Easy/Array/704.binary-search.js b/work/Easy/Array/704.binary-search.js new file mode 100644 index 0000000..5f12eca --- /dev/null +++ b/work/Easy/Array/704.binary-search.js @@ -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; +};