Leetcode126: Search for a Range
2015-10-29 15:47
447 查看
Given a sorted array of integers, 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
For example,
Given
return
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].
class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { int n = nums.size(); int l = 0; int r = n-1; int res = -1; vector<int> ret; while(l<=r) { int mid = (l+r)/2; if(nums[mid] == target) { res = mid; break; } else if(nums[mid] < target) l = mid+1; else r = mid-1; } if(res == -1) { ret.push_back(-1); ret.push_back(-1); return ret; } int ls=res; int rs=res; while(ls>=0 && nums[ls] == nums[res]) { ls--; } ls++; while(rs<=n-1 && nums[rs] == nums[res]) { rs++; } rs--; ret.push_back(ls); ret.push_back(rs); return ret; } };
相关文章推荐
- Android onClick
- Android studio导入项目报错failed to find Build Tools revision 19.0.0
- 归并排序
- Oracle 恢复数据后,数据库中中文变成问号解决方法
- 代理模式
- 丢掉IDE,回到Java的第一堂课
- php关键字仅替换一次的实现函数
- 网页中的表单
- spring-boot 使用log4j
- 小小Python爬虫(0)
- KNN分类算法的实现
- javascript Date format(js日期格式化)
- MySql取得日期(前一天、某一天)
- ios9中的提示框
- 张家界自助游攻略
- 手动构建CL210环境――packstack部署vlan模式
- zoj1091Knight Moves dfs+bfs+floyd
- PLSQL:中文乱码,显示问号
- CKEditor 使用方法
- YUV420SP和YUV420SP32M的区别