Algorithm


Problem Name: 704. 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 <= 104
  • -104 < nums[i], target < 104
  • All the integers in nums are unique.
  • nums is sorted in ascending order.

Code Examples

#1 Code Example with Java Programming

Code - Java Programming


class Solution {
  public int search(int[] nums, int target) {
    int start = 0;
    int end = nums.length - 1;
    while (start  < = end) {
      int mid = (start + end) / 2;
      if (nums[mid] == target) {
        return mid;
      } else if (nums[mid]  <  target) {
        start = mid + 1;
      } else {
        end = mid - 1;
      }
    }
    return -1;
  }
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
nums = [-1,0,3,5,9,12], target = 9

Output

x
+
cmd
4

#2 Code Example with Javascript Programming

Code - Javascript Programming


const search = function(nums, target) {
    let start = 0;
    let end = nums.length - 1;
    
    while(start  < = end){
        let mid = parseInt((start + end) / 2);
        if(nums[mid] === target) return mid;
        if(nums[mid] > target) end = mid -1;
        if(nums[mid] < target> start = mid + 1;
    }
    return -1;
};
Copy The Code & Try With Live Editor

Input

x
+
cmd
nums = [-1,0,3,5,9,12], target = 9

Output

x
+
cmd
4

#3 Code Example with Python Programming

Code - Python Programming


class Solution:
    def search(self, nums: List[int], target: int) -> int:
        return bisect.bisect_left(nums, target) if target in nums else -1
Copy The Code & Try With Live Editor

Input

x
+
cmd
nums = [-1,0,3,5,9,12], target = 2

#4 Code Example with C# Programming

Code - C# Programming


namespace LeetCode
{
    public class _0704_BinarySearch
    {
        public int Search(int[] nums, int target)
        {
            int lo = 0, hi = nums.Length - 1;

            while (lo  < = hi)
            {
                var mid = lo + (hi - lo) / 2;
                if (nums[mid] == target) return mid;
                else if (nums[mid] > target) hi = mid - 1;
                else lo = mid + 1;
            }

            return -1;
        }
    }
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
nums = [-1,0,3,5,9,12], target = 2

Output

x
+
cmd
-1
Advertisements

Demonstration


Previous
#703 Leetcode Kth Largest Element in a Stream Solution in C, C++, Java, JavaScript, Python, C# Leetcode
Next
#705 Leetcode Design HashSet Solution in C, C++, Java, JavaScript, Python, C# Leetcode