Contents

[Golang][Leetcode][Array]刷題系列-704-Binary Search


704. Binary Search


Level : Easy

原題連結 : Click

題目 :

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 :

Note

Input: nums = [-1,0,3,5,9,12], target = 9

Output: 4

Explanation: 9 exists in nums and its index is 4


以下是我自己的解法 - O(lgn)

Runtime: 32 ms, faster than 93.73% of Go online submissions for Binary Search.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21

func search(nums []int, target int) int {

	start, end := 0, len(nums)-1

	for start <= end {
		mid := (end-start)/2 + start
		if nums[mid] == target {
			return mid
		} else if nums[mid] > target {
			end = mid - 1
			continue
		} else if nums[mid] < target {
			start = mid + 1
			continue
		}
	}
	return -1
}



最後祝福努力認真的各位 “All your dream of are hidden in your daily life” 我們峰頂見!!!