[leetcode] 34. Search for a Range 解题报告
来源:互联网 发布:aegisub mac 编辑:程序博客网 时间:2024/04/29 13:03
题目链接:https://leetcode.com/problems/search-for-a-range/
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]
.
思路:使用二分查找找到左右边界即可,找到左右边界只要改变一下判断条件即可。
如果搜索条件是: if(nums[mid] <= target) left = mid+1; 这样left最终会停在结果的右边一位
如果搜索条件是: if(nums[mid] < target) left = mid+1; 这样left最终会停在结果的第一个位置
这样如果两个条件下搜索结果left停留在相同的位置, 说明没有搜索到, 就可以返回默认的[-1, -1]了, 否则就返回正确的位置.
代码如下:
class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { if(nums.size()==0) return {-1, -1}; int len = nums.size(), left = 0, right = len-1, ans; while(left <= right) { int mid = (left+right)/2; if(nums[mid] >= target) right = mid-1; else left = mid+1; } ans = left, right = len-1; while(left <= right) { int mid = (left+right)/2; if(nums[mid] > target) right = mid-1; else left = mid+1; } if(left==ans) return {-1, -1}; return {ans, left-1}; }};
0 0
- Leetcode Search for a Range 解题报告
- LeetCode解题报告--Search for a Range
- [LeetCode] Search for a Range 解题报告
- LeetCode: Search for a Range 解题报告
- [leetcode] 34. Search for a Range 解题报告
- Leetcode #34. Search for a Range 范围搜寻 解题报告
- [Leetcode] 34. Search for a Range 解题报告
- [LeeCode]Search for a Range, 解题报告
- leetcode解题笔记-Search for a Range
- [leetcode javascript解题]Search for a range
- leetcode解题方案--034--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
- Eclipse/MyEclipse字体走样
- javaEE之-------统计网站刷新量
- ==masm汇编不同环境的写法==
- Dataguard 备机产生gap
- iOS添加、移除、交换子视图
- [leetcode] 34. Search for a Range 解题报告
- 使用putty上传下载文件
- Hibernate-HQL、Criteria、SQL实现查询对照以及增删改
- Android应用最广的模式-单例模式
- 温故统计学
- Android自定义控件--仿 path 效果 ArcMenu
- 跟我一起写 Makefile
- 动态库,静态库,LD_LIBRARY_PATH,LIBRARY_PATH,-L,-l
- CentOS7下mysql安装整理