DEV Community

Vaishnvee Shinde
Vaishnvee Shinde

Posted on

4 3

Leet Code - Binary Search

Problem Statement:
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.

Solution:

class Solution {
    public int search(int[] nums, int t) {
        return bsearch(nums,t,0,nums.length-1);
    }
    public int bsearch(int []nums, int t, int l, int high)
    {
        if(high<l)
            return -1;
        int mid = l+(high-l)/2;
        if(nums[mid]==t)
            return mid;
        if(nums[mid]>t)
            return bsearch(nums,t,l,mid-1);
        return bsearch(nums,t,mid+1,high);
    }
}
Enter fullscreen mode Exit fullscreen mode

For More Solutions Visit: Leetcode

Retry later

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more