【LeetCode 34】Search for a Range
2015-07-19 15:27
477 查看
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
For example,
Given
return
题意:
给定一个有序数组,其中可能包含一些重复数字,给定一个数字,求其第一次和最后一次出现的坐标,要求 O(log n)。
思路:
有序数组+ O(log n),很显然二分搜索啦。
C++:
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),很显然二分搜索啦。
C++:
class Solution { public: int Bsearch(vector<int>& nums, int len, int start, int end, int tar, bool flag) { if(start > end) return -1; int mid = (start + end) / 2; if(nums[mid] == tar) { if(flag) { if((mid > 0 && nums[mid - 1] != tar) || mid == 0) { return mid; } else { return Bsearch(nums, len, start, mid - 1, tar, flag); } } else { if((mid < len - 1 && nums[mid + 1] != tar) || mid == len - 1) { return mid; } else { return Bsearch(nums, len, mid + 1, end, tar, flag); } } } else if(nums[mid] < tar) { return Bsearch(nums, len, mid + 1, end, tar, flag); } else { return Bsearch(nums, len, start, mid - 1, tar, flag); } } vector<int> searchRange(vector<int>& nums, int target) { int len = nums.size(); vector<int> ret; if(len == 0) return ret; ret.push_back(Bsearch(nums, len, 0, len - 1, target, true)); ret.push_back(Bsearch(nums, len, 0, len - 1, target, false)); return ret; } };
相关文章推荐
- COM线程模型调试
- [LeetCode]Permutations II(!!!!!DFS递归&&回溯)
- Apache的prefork模式和worker模式
- html5实现带提示文字的输入框(摆脱js)
- 数据表
- Hadoop Counter
- 2015/7/19 Django学习之入门
- Git基础---Git常用命令
- [Android]The connection to adb is down, and a severe error has occured.
- java创建二叉树并实现非递归中序遍历二叉树
- VS2012如何创建模板
- 学习MongoDB 七: MongoDB索引(索引基本操作)(一)
- dos格式转变为unix格式 总结
- C++中的unique(),unique_copy()的用法
- Zend Studio实用快捷键一览表
- cookies的存值问题
- Spring自动装配
- 字符串排序
- [LeetCode]Contains Duplicate II
- MongoDB_3.0.4在WIN7下的安装与配置