09 Sept 2026Go / Python / TypeScriptEasy

Binary Search

Locate a target in a sorted integer array or report that it is absent.

Maintain an inclusive search interval, compare its midpoint with the target, and discard the impossible half after each comparison.

complexity

O(log n) time and O(1) extra space.

solution files

  • Go binary-search/solution.go
  • Python binary-search/solution.py
  • TypeScript binary-search/solution.ts

Solution files

Gobinary-search/solution.go
package main

func search(nums []int, target int) int {
	left, right := 0, len(nums)-1
	for left <= right {
		middle := left + (right-left)/2
		if nums[middle] == target {
			return middle
		}
		if nums[middle] < target {
			left = middle + 1
		} else {
			right = middle - 1
		}
	}
	return -1
}
Pythonbinary-search/solution.py
class Solution:
    def search(self, nums: list[int], target: int) -> int:
        left, right = class="syntax-number">0, len(nums) - class="syntax-number">1
        while left <= right:
            middle = left + (right - left) class=class="syntax-string">"syntax-comment">// class="syntax-number">2
            if nums[middle] == target: return middle
            if nums[middle] < target: left = middle + class="syntax-number">1
            else: right = middle - class="syntax-number">1
        return -class="syntax-number">1
TypeScriptbinary-search/solution.ts
function search(nums: number[], target: number): number {
  let left = class="syntax-number">0;
  let right = nums.length - class="syntax-number">1;
  while (left <= right) {
    const middle = left + Math.floor((right - left) / class="syntax-number">2);
    if (nums[middle] === target) return middle;
    if (nums[middle] < target) left = middle + class="syntax-number">1;
    else right = middle - class="syntax-number">1;
  }
  return -class="syntax-number">1;
}