leetcode--34. Search for a Range
来源:互联网 发布:张红兵 知乎 编辑:程序博客网 时间:2024/05/18 09:01
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]
.
题目大意:给定一个排序的数组和一个目标数,寻找该目标数在数组中出现的首尾位置。如题中例子,8在数组中是第3、4个。
思路:排序数组->二分查找。如果nums[mid] > target 那么end需要变为mid-1;如果nums[mid] < target,那么begin需要变为mid+1;如果nums[mid]==target,那么首尾值肯定是在左右两边,注意边界处理。
class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { int begin = 0; int end = nums.size()-1; vector<int> result; while(nums[begin] <= nums[end]){ int mid = (begin+end)/2; if(nums[mid] == target){ begin = mid ; while(nums[begin] == target && begin>=0){ --begin; } result.push_back(begin+1); end = mid; while(nums[end] == target && end <= nums.size()-1){ ++end; } result.push_back(end-1); return result; } else if(nums[mid] < target){ begin = mid + 1; } else if(nums[mid] > target){ end = mid -1; } } result.push_back(-1); result.push_back(-1); return result; }};
leetcode编译通过。
0 0
- [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
- Leetcode 34. Search for a Range
- LeetCode 34. Search for a Range
- <LeetCode OJ> 34. Search for a Range
- 34. Search for a Range LeetCode
- [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
- Protractor
- 222.leetcode.Count Complete Tree Nodes(medium)[完全二叉树 节点个数]
- Linux简介
- c++之STL(13) STL 算法 - 查找算法(4)find_first_of(b,e,sb,se) find_first_of(b,e,sb,se,bp)
- Javascript 同步异步加载详解 (十足的好文章!!强烈推荐)
- leetcode--34. Search for a Range
- 微信配置模板消息进行订单消息推送[基于测试号]
- Codeforces Round #366 (Div. 2)
- 我的家教——面试
- 递归算法转换为非递归算法
- 10、java线性安全_并发容器_conCurrentHashMap
- zookeeper leader选举源码实现
- 同步直播(6):空间统计和异常值
- hdoj5444Elven Postman