九章演算法面試題85 搜尋區間

2021-07-09 06:51:40 字數 319 閱讀 1024

www.jiuzhang.com

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

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

這道題既然要求o(log n)那必然和binary search相關。那麼題目其實上是要找到給出的target區間[left,right]在陣列中的左右邊界。我們用二分,分別找到left和right在陣列裡面對應的左邊界和右邊界。

二分的方法如下:

最後判斷如果a[left], a[right] != target,則表明target不存在於陣列中, left = right = -1

九章演算法面試題77 插入區間

給出乙個無重疊的按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 這道題主要考察的是細節處理的過程,因為插入後的區間可能會出現三種可能。1,在頭插入,2,在中間插入,3,在尾插入。第1,3好處理,直接判斷是在頭還是在尾,直接...

九章演算法 Google面試題 內積

描述 給定長度為n的a陣列,長度為k的b陣列 你可以從a陣列裡取k個數 規則如下 即每次可以從a陣列的最左邊或者最右邊取走乙個數,取走的數從陣列中移除 將取出的ai按取出的順序組成c陣列 求b與c的內積最大值 b與c內積為 i 0k 1bi ci 解釋1 a 1,4,3,2,5 b 1,2,3,4 ...

九章演算法面試題32 小球排序

有紅黃藍三色的小球若干排成一列,這些小球進行排序,請使用盡量少的空間和時間。假設順序為紅色黃色藍色。用兩根指標從頭開始遍歷,第一根指標遇到非紅色時停下,如果第二根指標找到第一根指標之後的第乙個紅色停下,交換兩根指標所指顏色。重複上述過程。直到第二根指標找不到任何紅色。此時第一根指標到最後都是黃色或藍...