← Back to Leo Academy Masterclass

Problem #704: Binary Search

Easy Binary Search

Intuition & Strategy Breakdown

Use binary search on sorted array: set mid = (low + high) // 2. If target == nums[mid] return mid; adjust search bounds accordingly.

Python Solution

class Solution:
    def search(self, nums: list[int], target: int) -> int:
        l, r = 0, len(nums) - 1
        while l <= r:
            m = (l + r) // 2
            if nums[m] > target:
                r = m - 1
            elif nums[m] < target:
                l = m + 1
            else:
                return m
        return -1

Java Solution

class Solution {
    public int search(int[] nums, int target) {
        int l = 0, r = nums.length - 1;
        while (l <= r) {
            int m = l + (r - l) / 2;
            if (nums[m] > target) r = m - 1;
            else if (nums[m] < target) l = m + 1;
            else return m;
        }
        return -1;
    }
}
Watch Interactive Video on Leo Academy Main App