【題目概要】
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...