34 在排序陣列中查詢元素的起始和末尾位置

2021-10-07 19:02:43 字數 988 閱讀 1955

輸入: 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...