61 搜尋區間(二分法)

2021-08-14 23:57:29 字數 768 閱讀 1606

給定乙個包含 n 個整數的排序陣列,找出給定目標值 target 的起始和結束位置。

如果目標值不在陣列中,則返回[-1, -1]

樣例

給出[5, 7, 7, 8, 8, 10]和目標值target=8,

返回[3, 4]

思想:兩個指標,前後夾擊

解法一(時間複雜度o(n))

class solution 

}return result;

}};

解法二(二分法)(時間複雜度o(n)

class solution 

if (a[mid] < target)

if (a[mid] == target)

}int ansr = -1;

for (int l = 0, r = a.size() - 1; l <= h;)

if (a[mid] < target)

if (a[mid] == target)

}ans.push_back(ansl);

ans.push_back(ansr);

return ans;

}};

搜尋 二分法

input 待搜尋目標整數,目標陣列 output 找到目標整數的索引,找不到則 1 constraints 目標陣列有序排列 公升降序 二分法搜尋思想 舉例說明 你是個摸牌高手,不用掀開麻將只需用手摸就能摸出牌面,桌面扣著80個麻將牌,不同的是麻將上刻的是80個1到500的公升序不連續數字,形如 ...

二分法,二分搜尋

二分法是乙個應用很廣泛的演算法 好吧,剛說出這句話的時候,我查了一下資料,發現我了解的應用寥寥無幾.ok,既然不知道,那就下次補充把。咱們直接進入主題。二分法 bisection method 是一種方程式根的近似值求法。演算法 若要求已知函式f x 0的值則 1.先找出乙個區間 a,b 使得f a...

二分搜尋 二分法及運用

二分法查詢 通過不斷縮小解存在的範圍,在有序陣列中查詢特定元素的搜尋演算法。經常可見 二分法 與其他演算法結合的題目 1 首先,從陣列的中間開始搜尋,如果該位置的值剛好是目標,則表示找到,結束搜尋。2 如果第一步的搜尋到的值大於目標,則把陣列分成兩半,在陣列右邊區域查詢,然後重複步驟 1 的操作。如...