leetcode006-Search for a Range
来源:互联网 发布:获取对方通话记录软件 编辑:程序博客网 时间:2024/06/05 22:55
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]
.
解题思路:1.排序
2.二分法找到target
3.从target所在位置往两边扫描,直到两边各自出现不等于target的元素
以下是AC的代码
class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { if(nums.empty() || (nums.size()==1 && nums[0] != target)) return vector<int>{-1,-1}; int low=0,high=nums.size()-1; while (low <= high) { int mid = (high - low) / 2 + low; if (nums[mid] > target) { high = mid-1; } else if (nums[mid] < target) { low = mid+1; } else { int i = mid, j = mid; while (i >= 0 && nums[mid] == nums[i]) { i--; } while (j <= nums.size()-1 && nums[mid] == nums[j]) { j++; } return vector<int>{++i,--j}; } } return vector<int>{-1,-1}; }};
阅读全文
0 0
- leetcode006-Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range !!!
- Search for a Range
- Search for a Range
- Search For A Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- linux报"xxx is not in the sudoers file.This incident will be reported"错误
- python通过定制路径的方式解析接口返回数据
- 5.轨迹抽象,关键点序列生成
- 【bzoj4403】【序列统计】不降转升+组合数添项合并
- EL表达式截取字符串
- leetcode006-Search for a Range
- 51nod 1092 回文字符串 【巧用 dp】
- 初入Linux
- AngularJs示例简单增删改查
- MATLAB实现双目校准
- 给你90天,成为不一样的自己
- java中的方法(函数)的定义
- HBase安装与配置
- 3Sum