Search for a Range
来源:互联网 发布:靠谱的网络兼职有哪些 编辑:程序博客网 时间:2024/05/03 08:25
题目大意:给定一个排好序的序列,和一个数字,求这个序列等于给定数字的位置范围。
解题思路:二分查找,分别求等于给定数字最靠左的位置和最靠右的位置。
class Solution {public: vector<int> searchRange(int A[], int n, int target) { int left = searcheRangeAssist(A, 0, n - 1, target, true); int right = searcheRangeAssist(A, 0, n - 1, target, false); vector<int> result; result.push_back(left); result.push_back(right); return result; }private: int searcheRangeAssist(int A[], int low, int high, int target, bool isLeft) { while(low <= high) { int mid = (low + high) >> 1; if(target == A[mid]) { int temp = -1; if(isLeft) { if(mid > low && A[mid] == A[mid - 1]) { temp = searcheRangeAssist(A, low, mid - 1, target, isLeft); } } else { if(mid < high && A[mid] == A[mid + 1]) { temp = searcheRangeAssist(A, mid + 1, high, target, isLeft); } } return temp == -1 ? mid : temp; } else if(target > A[mid]) { low = mid + 1; } else { high = mid - 1; } } return -1; }};
0 0
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range !!!
- Search for a Range
- Search for a Range
- Search For A Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- IDE快捷键
- IO模型:同步与异步,阻塞与非阻塞
- “知乎网”技术方案初探
- 手机网站开发的一些总结
- Lambda表达式详解
- Search for a Range
- 从原字符串的第m个开始的全部字符复制成为另一个字符串
- 迷宫 GDI 展示 及 读取位图获取信息
- 第三周 程序阅读
- คาสิโนออนไลน์มาตรฐานที่หนึ่ง
- Json入门教程
- 六度空间
- 用通俗易懂的大白话讲解Map/Reduce原理
- Remove Element