輸入: nums = [5,7,7,8,8,10], target = 8
輸出: [3,4]
找不到輸出[-1,-1]
先找到第乙個nums[mid]=target的mid,然後分別查詢左右。
當時覺得還不錯,一執行時間和線性查詢差不多。
下面這段**十分的簡介。二分,如果相等,那麼看需求區間左移還是右移。class
solution;}
if(nums[mid]
>target) right=mid-1;
else left=mid+1;
}return
newint
;}private
intsearch
(int
nums,
int target,
int left,
int right,
int tep,
int f)
else}if
(nums[mid]
>target) right=mid-1;
else left=mid+1;
}return tep;
}}
class
solution;}
private
intfindright
(int
nums,
int target)
else
if(nums[mid]
>target)
else
}return ans;
}private
intfindleft
(int
nums,
int target)
else
if(nums[mid]
>target)
else
}return ans;
}}
在排序陣列中查詢元素
34.在排序陣列中查詢元素的第乙個和最後乙個位置。給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是 o log n 級別。如果陣列中不存在目標值,返回 1,1 include include include...
leetcode 18 在排序陣列中查詢元素
給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是 o log n 級別。如果陣列中不存在目標值,返回 1,1 二分查詢,然後再遞迴二分查詢 head,mid 1 mid 1,tail 結果絕世 right ...
在排序陣列中查詢數字
題目一 數字在排序陣列 現的次數。統計乙個數字在排序陣列 現的次數。例如,輸入排序 陣列和數字3,由於3在這個數 組 現了4次,因此輸出4。設計乙個改進的二分查詢法,分別查詢陣列中第乙個該數字和最後乙個該數字,找到之後 利用索引計算中間該數字的個數 package helen.c public cl...