二分/雙指針
單詞距離
二分
對于進(jìn)階部分內(nèi)容,開始的想法是用一個map記錄所有的元素對應(yīng)的所有下標(biāo),再用二分的形式,找到每一個元素的每個下標(biāo)最佳位置;時間復(fù)雜度o(nlogn) 不是最優(yōu)做法;主要是這個過程運(yùn)用二分所出現(xiàn)的問題解決;
在這樣找的二分中,必定是找不到相等值的,這樣,最優(yōu)值自然會落在二分出來的l和r附近;
但這個值可能不是l這個值,而是,l-1;這是用例子分析出來的;
例如 target = 3 ; 在 1 5 8 三個元素的數(shù)組里找,初始 l=0,r=3; mid = 1; 即找到5,然后 r = 1;mid=0; 出循環(huán)的時候 l = mid+1 ;(理應(yīng)沒有+1) ,這就造成了數(shù)據(jù)誤差,因此在實(shí)際更新min值的時候,要對l和l-1的值都要進(jìn)行判定是否滿足;
簡單模擬(雙指針)
對words進(jìn)行遍歷,使用兩個指針 p 和 q 分別記錄最近的兩個關(guān)鍵字的位置,并維護(hù)最小更新距離
標(biāo)簽: