leetcode系列704 二分查詢

2021-10-07 21:59:28 字數 1943 閱讀 1828

【題目概要】

704. binary search

given a sorted (in ascending order) integer array nums of n elements and a target value, write a function to search target in nums. if target exists, then return its index, otherwise return-1.

example 1

:input: nums =[-

1,0,

3,5,

9,12]

, target =

9output:

4explanation:

9 exists in nums and its index is 4

example 2

:input: nums =[-

1,0,

3,5,

9,12]

, target =

2output:-1

explanation:

2 does not exist in nums so return

-1

【思路分析】

二分法查詢,共有三種模板在使用二分法時,選擇模板1,注意先確定是左邊界,再確定右邊界,反之,出現內部錯誤

三大模板簡介

【模板1】

intbinarysearch

(vector<

int>

& nums,

int target)

else

if(nums[mid]

< target)

else

}// end condition: left > right

return-1

;}【模板2】

intbinarysearch

(vector<

int>

& nums,

int target)

else

if(nums[mid]

< target)

else

}// post-processing:

// end condition: left == right

//right 減小,出現的情況left >= right

【模板3】

intbinarysearch

(vector<

int>

& nums,

int target)

else

if(nums[mid]

< target)

else

}// post-processing:

// end condition: left + 1 == right

if(nums[left]

== target)

return left;

if(nums[right]

== target)

return right;

return-1

;}

【**示例】

int

search

(int

* nums,

int numssize,

int target)

return-1

;}

LeetCode704 二分查詢

題目描述 給定乙個 n 個元素有序的 公升序 整型陣列 nums 和乙個目標值 target 寫乙個函式搜尋 nums 中的 target,如果目標值存在返回下標,否則返回 1。示例1 輸入 nums 1,0,3,5,9,12 target 9 輸出 4 解釋 9 出現在 nums 中並且下標為 4...

LeetCode 704 二分查詢

給定乙個 n 個元素有序的 公升序 整型陣列 nums 和乙個目標值 target 寫乙個函式搜尋 nums 中的 target,如果目標值存在返回下標,否則返回 1。示例 1 輸入 nums 1,0,3,5,9,12 target 9 輸出 4 解釋 9 出現在 nums 中並且下標為 4 示例 ...

leetcode 704 二分查詢

給定乙個 n 個元素有序的 公升序 整型陣列 nums 和乙個目標值 target,寫乙個函式搜尋 nums 中的 target,如果目標值存在返回下標,否則返回 1。這道題,並不難,但是邊界條件上容易犯錯。public intsolution int nums,int target int len...