Search for a Range一打简单的二分题
2017-10-03 21:06
211 查看
题目描述:
Given an array of integers sorted in ascending order, find the starting and ending position of a given target value.
Your algorithm’s runtime complexity must be in the order of O(log n).
If the target is not found in the array, return [-1, -1].
For example,
Given [5, 7, 7, 8, 8, 10] and target value 8,
return [3, 4].
思路:这是一道简单的二分题,只要考虑好边界,二分即可。
代码如下:
Given an array of integers sorted in ascending order, find the starting and ending position of a given target value.
Your algorithm’s runtime complexity must be in the order of O(log n).
If the target is not found in the array, return [-1, -1].
For example,
Given [5, 7, 7, 8, 8, 10] and target value 8,
return [3, 4].
思路:这是一道简单的二分题,只要考虑好边界,二分即可。
代码如下:
vector<int> searchRange(vector<int>& nums, int target) { int begin=0; vector<int>temp; if(nums.size()==0){ temp.push_back(-1); temp.push_back(-1); return temp; } int end=nums.size()-1; int mid=(end+begin)/2; while(begin<end){ if(nums[mid]==target) break; if(nums[mid]<target){ if(mid==begin){ mid=end; break; } begin=mid; mid=(end+begin)/2; } if(nums[mid]>target){ if(mid==end) { mid=begin; break; } end=mid; mid=(end+begin)/2; } } int a,b; if(nums[mid]==target){ a=mid; b=mid; while(nums[a]==target&&a>=0){ a--; } while(nums[b]==target){ b++; } temp.push_back(a+1); temp.push_back(b-1); } else{ temp.push_back(-1); temp.push_back(-1); return temp; } return temp; } };
相关文章推荐
- LeetCode Search for a Range (二分查找)
- [leetcode-二分查找]--34. Search for a Range
- Leetcode 34 Search for a Range (二分搜索 lower_bound和upper_bound)
- LeetCode:Search Insert Position,Search for a Range (二分查找,lower_bound,upper_bound)
- 二分查找:Search for a Range
- 34.leetcode Search for a Range(meidum)[二分查找]
- leetcode 二分查找 Search for a Range
- Search for a Range——稍微升级版的二分查找
- [LeetCode] Search for a Range 二分搜索
- leetCode_Search for a Range(二分查找)
- leetcode:Search for a Range 二分查找
- leetcode_34——Search for a Range(二分查找)
- leetcode:Search for a Range(数组,二分查找)
- 二分搜索——34. Search for a Range
- 【二分查找】Search for a Range
- leetcode 34. Search for a Range 二分查找
- 二分查找之Search for a Range
- leetcode 34. Search for a Range (二分查找)
- 34. Search for a Range(二分查找有重复元素数组中的目标数的第一个位置和最后一个位置)
- leetcode Add to List 34. Search for a Range 二分查找