Leetcode Note: Go - Binary Search

Binary Search - LeetCode
https://leetcode.com/problems/binary-search/

  • Go 言語で取り組んだメモ

所感

  • int 配列 nums と int target が渡される
    • nums に含まれる数値はユニークであることが保証されている
    • nums は昇順でソート済みとする
  • nums に含まれる target の index を int で return する

回答

Go Solution, with and without Standard Library - LeetCode Discuss
https://leetcode.com/problems/binary-search/discuss/850762/Go-Solution-with-and-without-Standard-Library

func search(nums []int, target int) int {
	low, high := 0, len(nums)-1
	var mid int
	for low <= high {
		mid = (low + high) / 2
		if nums[mid] < target {
			low = mid + 1
		} else if nums[mid] > target {
			high = mid - 1
		} else {
			return mid
		}
	}

	return -1
}
  • binary search で探索
  • mid を使って中央での分割をループしていく