【C++】【LeetCode】34. Search for a Range
来源:互联网 发布:java集合的概念 编辑:程序博客网 时间:2024/05/16 14:16
题目
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].
思路
先用二分法找到某个target所在下标,然后往前后遍历,直到遍历到不同元素。
代码
class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { vector<int> range; int left = 0; int right = nums.size() - 1; while (left <= right) { int mid = (left + right) / 2; if (target == nums[mid]) { int begin = mid; int end = mid; while (begin >= 0 && nums[begin] == target) { begin--; } while (end < nums.size() && nums[end] == target) { end++; } return {begin+1, end-1}; } else if (target < nums[mid]) { right = mid - 1; } else if (target > nums[mid]) { left = mid + 1; } } return {-1, -1}; }};
阅读全文
0 0
- 【C++】【LeetCode】34. Search for a Range
- [C++]LeetCode: 65 Search for a Range
- [leetcode-34]Search for a Range(C)
- LeetCode c语言-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 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
- 转载和积累系列
- 循环队列操作之一:循环队列的表示和实现(C语言版本)
- 仿qq侧滑删除
- Java 语言基础之计算机的进制转换
- Java笔试题目汇总___选择题
- 【C++】【LeetCode】34. Search for a Range
- Unity Learning for Day 9
- 极具个性化的【自定义日历】中式(纯干货)---超详细,记录你的学习计划与完成情况
- 最全CSS3选择器
- 裸机_GPIO实验_C语言
- Commons Logging 的使用方法
- Java使用Log日志系统(common-logging和log4j)
- TLS协议格式
- 特征工程(Feature Enginnering)学习记要