[Leetcode]Search for a Range
来源:互联网 发布:网络错误代码-7 编辑:程序博客网 时间:2024/05/19 20:21
Search for a Range My Submissions Question
Total Accepted: 64904 Total Submissions: 232560 Difficulty: Medium
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].
Subscribe to see which companies asked this question
一次找到第一个出现的位置,另一次找到最后一个出现的位置。进行替代即可
class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { vector<int> res{-1,-1}; res[0] = findFirst(nums,target); res[1] = findLast(nums,target); return res; }private: int findFirst(const vector<int>& nums,int target){ int l = 0; int r = nums.size() - 1; int mid; while(l < r){ mid = l + (r - l) / 2; if(nums[mid] < target){ l = mid + 1; } else if(nums[mid] > target){ r = mid; } else{ if(l == mid) return l; else r = mid; } } if(nums[l] == target) return l; else return -1; } int findLast(const vector<int>& nums,int target){ int l = 0; int r = nums.size() - 1; int mid; while(l < r - 1){ mid = l + (r - l) / 2; if(nums[mid] < target){ l = mid + 1; } else if(nums[mid] > target){ r = mid - 1; } else{ l = mid; } } if(nums[r] == target) return r; else if(nums[l] == target) return l; else return -1; }};
0 0
- 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
- LIstView
- PHP数组的遍历
- 106.Oracle数据库SQL开发之 表——向表中添加注释
- Hadoop2.6.0集群配置
- 【编译器】使用Visual Studio编写C语言程序(附若干错误解决方案)
- [Leetcode]Search for a Range
- js中循环语句浅谈
- rk3288 camera cif分析
- 107.Oracle数据库SQL开发之 表——截断、删除表
- JS截取字符串substr 和 substring方法的区别
- CCNA学习笔记四 动态路由简介、OSPF动态路由配置
- 编程艺术【转】阅后有感
- 108.Oracle数据库SQL开发之 序列
- BlotDB数据库例子