34. Search for a Range
2016-04-26 10:45
218 查看
class Solution { private: int binerySearch(vector<int>&nums,int searchnum,int start,int end) { if(start<=end) { int mid=(start+end)/2; if(nums[mid]==searchnum) return mid; else if(searchnum<nums[mid]) { return binerySearch(nums,searchnum,start,mid-1); } else { return binerySearch(nums,searchnum,mid+1,end); } } else return -1; } public: vector<int> searchRange(vector<int>& nums, int target) { vector<int> result; if(nums.size()==0) { result.push_back(-1); result.push_back(-1); return result; } int findfirst=binerySearch(nums,target,0,nums.size()-1); if(findfirst==-1) { result.push_back(-1); result.push_back(-1); }else { int left=findfirst; int right=findfirst; while(left>=0&&nums[left]==target) { left--; } left++; while(right<=nums.size()-1&&nums[right]==target) { right++; } right--; result.push_back(left); result.push_back(right); } return result; } };
相关文章推荐
- iOS开发多线程篇—单例模式(ARC)
- java 代码书写规范
- matlab遇到的错误
- 文章标题
- iOS中控制器的强引用释放问题
- hdu 2191 01背包
- Hadoop2.6.0的事件分类与实现
- iOS App集成Apple Pay教程(附示例代码)
- Postgresql 使用pg_upgrade升级(9.4.4~9.5.2)
- Request URL参数
- [Hnoi2016]序列 解题报告
- IDA学习
- centos7系统root无法通过su切换到某个普通用户
- scrapy安装笔记
- Ubuntu Install Zhengma
- 四、工厂设计模式
- Python里的OS模块常用函数说明
- 集成融云IM需要做的配置
- ieTest复制地址到地址栏中文乱码
- 浏览器渲染原理