lintcode 演算法 458 目標最後位置

2021-09-24 03:24:42 字數 1294 閱讀 1440

458. 目標最後位置

中文english

給乙個公升序陣列,找到 target 最後一次出現的位置,如果沒出現過返回 -1

樣例樣例 1:

輸入:nums = [1,2,2,4,5,5], target = 2

輸出:2

樣例 2:

輸入:nums = [1,2,2,4,5,5], target = 6

輸出:-1

1.使用的是二分查詢的方法,假設目標的陣列為 nums

2.設計start = 0,end = nums[nums.length-1],那麼mid = (start + end) /2

3.如果 nums[mid] > target ,表示的 目標 target 在該陣列的左邊,那麼重新定義 end = mid-1

4.如果 nums[mid] < target ,表示的 目標 target 在該陣列的右邊,那麼重新定義 start = mid+1

5.直到 nums[mid] == target的時候,返回mid的值

6.但是,請注意,這一道題目要求的是最後的位置,那麼就有可能,當你滿足了步驟5,也就是時候 nums[start] == target,但是此時 可能存在 nums[mid] == nums[mid + 1],故此,還需要對mid後面的值進行二分查詢。

public class lastposition  else if (nums[nums.length - 1] == target) 

int start = 0;

int end = nums.length - 1;

return erfencha(nums, target, start, end);

} private static int erfencha(int nums, int target, int start, int end) else

// return mid+i-1;}}

if (start < end && nums[mid] < target)else if(start < end && nums[mid] > target )

return result;

} public static void main(string args) ;

int target = 5;

int nums = new int ;

int index = lastposition(nums, target);

system.out.println(index);

}}

目標追蹤演算法

include include using namespace cv using namespace std global variables rect box bool drawing box false bool gotbb false bounding box mouse callback v...

Urban tracker 目標跟蹤演算法

背景抽取 background subtraction 在 中,作者使用的是vibe演算法,但由於vibe演算法申請了專利,因此,建議參考changedetection上的其它演算法進行背景抽取。預處理 高斯5x5雜訊過濾,並對分割得到的前景mask進行形態學填充,blob面積小於tm 則被當成雜訊...

TLD目標跟蹤演算法

以下博文 tld是一種演算法的簡稱,原作者把它叫做tracking learning detection。搞視覺的人看到這個名字都會嚇一跳,很ambitious的計畫。是09年的工作,不算太久,不過也不太新。網上關於這個的資源其實很多,很大程度和作者開放源 有關。學習過程中碰到的第乙個問題就是資源太...