给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target,返回 [-1, -1]。
示例:
输入:nums = [5,7,7,8,8,10]
, target = 8
输出:[3,4]
解法思路,借鉴网友思路,采用暴力算法遍历整个数组,如果第一次得到nums[i] 等于target 就直接把返回的数组的元素都变为i同时flag改变一下,让后续nums[i]等于target只改变返回数组的右区间
代码:
class Solution {
public:
vector<int> searchRange(vector<int>& nums, int target) {
int len = nums.size();
vector<int> res(2,-1);
bool just = false;
for(int i = 0; i < len;++i)
{
if(just == false)
{
if(nums[i] == target)
{
res[0] = i;
res[1] = i;
just = true;
}
}
else
{
if(nums[i]==target)
{
res[1]=i;
}
}
}
return res;
}
};
运行: