34. Search for a Range
来源:互联网 发布:adobe flash cs3 mac 编辑:程序博客网 时间:2024/04/29 22:47
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 [-1, -1].
For example,
Given [5, 7, 7, 8, 8, 10] and target value 8,
return [3, 4].
思路:先用二分法找到有target的地方,再向左向右找边界。这题也真是做了超长时间。
class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { vector<int> result; result.push_back(getBoundRange(nums, 0, nums.size()-1, target, true)); result.push_back(getBoundRange(nums, 0, nums.size()-1, target, false)); return result; } int getBoundRange(vector<int> nums, int l, int r, int target, bool left){ if(l>r) return -1; else{ int m = (l+r)/2; if(nums[m]==target){ if(left){ if(m==0 || nums[m-1]<target) return m; else return getBoundRange(nums, l, m-1, target, left); }else { if(m==nums.size()-1 || target<nums[m+1]) return m; else return getBoundRange(nums, m+1, r, target, left); } } else if (nums[m]>target) { return getBoundRange(nums, l, m-1, target, left); }else { return getBoundRange(nums, m+1, r, target, left); } } } };
0 0
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- 34. Search for a Range
- Android Studio官方版DrawerLayout侧滑菜单解析
- Spring@Resource和@Autowired区别对比
- HDU 2873 Bomb Game
- Linux下HelixServer的安装与配置
- Mysql几种索引方式的区别及适用情况
- 34. Search for a Range
- web服务中的cookies和session小结
- 经典排序算法总结与实现
- 文档
- 网页性能管理详解
- linux无法用ssh连接
- 100只鸡100元
- Git 将本地数据克隆到远程库的具体实现(09)
- Java RandomAccessFile随机访问类