[LeetCode] Search for a Range
来源:互联网 发布:传奇永恒网络传输异常 编辑:程序博客网 时间:2024/04/29 13:02
class Solution {public: int find_left(int A[], int s, int t, int target) { int l = s; int r = t; while (l <= r) { int p = (l + r) / 2; if (A[p] < target) l = p + 1; else r = p - 1; } return l; } int find_right(int A[], int s, int t, int target) { int l = s; int r = t; while (l <= r) { int p = (l + r) / 2; if (A[p] > target) r = p - 1; else l = p + 1; } return r; } vector<int> searchRange(int A[], int n, int target) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<int> ret; int s = 0; int t = n - 1; while (s <= t) { int p = (s + t) / 2; if (A[p] == target) { int l = find_left(A, s, p, target); int r = find_right(A, p, t, target); ret.push_back(l); ret.push_back(r); return ret; } else if (A[p] < target) { s = p + 1; } else { t = p - 1; } } ret.push_back(-1); ret.push_back(-1); return ret; }};
Small Case: 12ms
Large Case: 64ms
Time: O(lgn)
Space: O(1)
- LeetCode: Search for a Range
- LeetCode Search for a Range
- [Leetcode] Search for a Range
- LeetCode : Search for a Range
- [LeetCode] Search for a Range
- [Leetcode] Search for a Range
- Leetcode Search for a Range
- [LeetCode]Search for a Range
- LeetCode-Search for a Range
- [leetcode] Search for a Range
- LeetCode - Search for a Range
- Search for a Range leetcode
- LeetCode | Search for a Range
- LeetCode - Search for a Range
- LeetCode: Search for a Range
- leetcode: Search for a Range
- 【leetcode】Search for a Range
- Leetcode: Search for a Range
- 国际电子对焊盘要求制定的标准
- 【ACM-Steps1.2】简单字符串处理、简单数学题、进制转换系列8题(一)
- sharepoint 2010 扩展调查字段属性(5)-增加图片支持-多选-查看投票结果
- CUDA 安装
- 获得所有打印机
- [LeetCode] Search for a Range
- 动态数组vector和List
- ubuntu12配置nfs服务
- linux 挂载错误Transport endpoint is not connected
- iOS系统架构
- oracle中CASE 的用法
- Great Forget Wall
- etmvc+jQuery EasyUI Highcharts实现柱状图
- CPU同步机制漫谈