LintCode 61 搜尋區間

2021-07-31 10:12:38 字數 565 閱讀 8223

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

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

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

返回[3, 4]

時間複雜度 o(log n)

先用二分法找到以後,再搜尋區間。

vector

searchrange(vector

&a, int target)

while (left <= right)

while (left >= 0 && a[left] == target )

vec.push_back(left + 1);

vec.push_back(right - 1);

return vec;

} else

if (a[mid] > target) else

}vec.push_back(-1);

vec.push_back(-1);

return vec;

}

LintCode 61 搜尋區間

給定乙個包含 n 個整數的排序陣列,找出給定目標值 target 的起始和結束位置。如果目標值不在陣列中,則返回 1,1 樣例 給出 5,7,7,8,8,10 和目標值target 8,返回 3,4 思路 二分查詢 class solution else return result 找左邊界 int...

61 搜尋區間

給定乙個包含 n 個整數的排序陣列,找出給定目標值 target的起始和結束位置。如果目標值不在陣列中,則返回 1,1 樣例給出 5,7,7,8,8,10 和目標值target 8,返回 3,4 挑戰 時間複雜度 o log n 應該要第一時間反應到二分,就算沒有想到看到這個時間複雜度也要想到了 總...

LintCode 搜尋區間

題目 給定乙個包含 n 個整數的排序陣列,找出給定目標值 target 的起始和結束位置。如果目標值不在陣列中,則返回 1,1 樣例 給出 5,7,7,8,8,10 和目標值target 8,返回 3,4 思路 用二分法分別查詢出目標值的左右邊界。查詢左邊界時a r 永遠大於等於target,a p...