[LeetCode] Search for a Range
来源:互联网 发布:java泛型集合调用 编辑:程序博客网 时间:2024/06/11 16:35
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]
.
问题描述:给定一个排序的整数数组,找到一个给定值的起始和终止位置,算法的时间复杂度是O(log n)。
由于算法的时间复杂度是O(log n),因此,可以采用二分查找,只不过当查找到给定的值时,要向左和向右进行延伸,看是否有重复的元素。
class Solution {public: vector<int> searchRange(int A[], int n, int target) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case. int left = 0, right = n - 1, mid = 0; vector<int> vec; while(left <= right) { mid = (left + right) / 2; if(target > A[mid]) left = mid + 1; else if(target < A[mid]) right = mid - 1; else { int i = mid; while(i >= left && A[i] == target) --i; int j = mid; while(j <= right && A[j] == target) ++j; vec.push_back(++i); vec.push_back(--j); return vec; } } vec.push_back(-1); vec.push_back(-1); return vec; }};
- 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
- 在64-bit机器上运行32-big的应用程序,需要安装ia32-libs库
- 内核的输入子系统
- ubuntu创建及删除文件和文件夹
- 自定义表格控件(通过TabLayout+TabRow)获取表格所有数据,并对表格进行相关事件监听
- WCFDemo
- [LeetCode] Search for a Range
- Linux新手要了解的十个知识点
- JS读取cookie(记住账号密码)
- ORACLE 等待事件的分类
- icinga简明教程1—服务端安装配置
- 动态链接库调用方式
- Android模拟笔试题
- ABAP --- for all entries in 用法
- Hadoop 2.2.0正式版特性分析