Search for a Range--LeetCode
来源:互联网 发布:商家联盟管理系统源码 编辑:程序博客网 时间:2024/06/05 07:56
1.题目
Search for a Range
Given an array of integers sorted in ascending order, 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].
2.题意
给定升序数组,找到target的起始和结束位置
若不存在,返回 [-1,-1]
算法的复杂度必须是 O (log n)
3.分析
借助两次二分查找即可找出左右边界
4.代码
class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { vector<int> result(2, -1); if(nums.size() == 0) return result; int ll = 0; int lr = nums.size() - 1; while(ll <= lr) { int m = ll + (lr - ll) / 2; if(nums[m] < target) ll = m + 1; else lr = m - 1; } int rl = 0; int rr = nums.size() - 1; while(rl <= rr) { int m = rl + (rr - rl) / 2; if(nums[m] > target) rr = m - 1; else rl = m + 1; } if(ll <= rr) { result[0] = ll; result[1] = rr; } return result; }};
阅读全文
0 0
- 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
- [agc017F]Zigzag
- Filter(第三节)
- python: reduce函数
- 列表表达式实例
- Action和Page数据共享方式 (值栈/Context) 值栈获取方式
- Search for a Range--LeetCode
- C++ 数论-质因数分解
- Struts 2 访问session request application 对象的方式
- Mapping the request body with the @RequestBody annotation
- define(宏) const(常变量) enum(枚举)
- [noip2012]疫情控制(二分+贪心)
- 递归求和、阶乘、最大公约数 以及汉诺塔
- Spring@responseBody乱码解决
- 在 Qt 程序中使用 MPIR