LeetCode 34. Search for a Range
来源:互联网 发布:淘宝抢购 编辑:程序博客网 时间:2024/05/18 21:43
问题
https://leetcode.com/problems/search-for-a-range/
解决方法
二分查找,首先找到左边界,然后找到右边界。
查找左边界时,我们首先默认R是大于等于target的,然后需要查找[L, R-1] 处小于等于target 的最小位置并赋给R,最后比较R处是否等于target判断是否找到target;
查找右边界时, 首先默认L处是小于等于target的, 然后需要查找[L+1, R] 中小于等于target 的最大值赋给L;
class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { int L, R; vector<int> ret(2,-1); // find left pos; L = 0; R = nums.size()-1; while(L<R){ // find range [L, R-1]; int m = L+(R-L)/2; if (target <= nums[m]) R = m; else L= m+1; } if (nums[R] != target) return ret; else ret[0] = R; L =R; R = nums.size()-1; while(L<R){ int m = L+(R-L+1)/2;// find range [L+1, R]; if (nums[m] <= target) L= m; else R= m-1; } ret[1] = L; return ret; }};
0 0
- [LeetCode]34.Search for a Range
- LeetCode --- 34. Search for a Range
- LeetCode 34.Search for a Range
- [Leetcode] 34. Search for a Range
- [leetcode] 34.Search for a Range
- 【leetcode】34. Search for a Range
- [leetcode] 34. Search for a Range
- Leetcode 34. Search for a Range
- LeetCode 34. Search for a Range
- <LeetCode OJ> 34. Search for a Range
- 34. Search for a Range LeetCode
- [Leetcode]34.Search for a Range
- leetcode 34. Search for a Range
- leetcode 34. Search for a Range
- leetcode 34. Search for a Range
- leetcode 34. Search for a Range
- LeetCode *** 34. Search for a Range
- LeetCode 34. Search for a Range
- Markdown 常用技巧
- 记XMPP即时通讯协议的认识
- 238. Product of Array Except Self
- 从mysql官网下载mysql安装包
- Github Coding Developer Book For LiuGuiLinAndroid
- LeetCode 34. Search for a Range
- Python 数据结构与算法 —— 从分治的角度看快速排序、归并排序
- 2016.4.18 美图笔试(Java岗)
- Less学习笔记(一)
- 【转】Android面试题精选
- 位运算总结
- shader回顾01 --- shader"硬件"基础
- 第7周项目1 成员函数
- 敏捷风暴2016(广州站)