- 题目:
给定整数的排序数组,找到给定目标值的起始和结束位置。 您的算法的运行时复杂性必须是O(log n)的顺序。 如果在数组中找不到目标,则返回[-1,-1]。 例如, 给定[5,7,7,8,8,10]和目标值8, return [3,4]。
- 思路:这个题目直接使用容器存储出现查找元素的位置。取出第一个和最后一个即可。
- 代码
class Solution { public: vector<int> searchRange(int A[], int n, int target) { vector<int> res; vector<int> v; int first = 0, last = 0; for (int i=0; i<n;i ++){ if (target == A[i]){ res.push_back(i); } } if (res.size() == 0){ first = -1; last = -1; }else if (res.size() == 1){ first = res[0]; last = res[0]; } else{ first = res.front(); last = res[res.size()-1]; } v.push_back(first); v.push_back(last); return v; } };