第九周算法分析与设计: Search for a Range
来源:互联网 发布:上海去哪买钢琴 知乎 编辑:程序博客网 时间:2024/06/06 02:48
问题描述:
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 ofO(logn) .
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]
.
问题来自此处
解答思路:
一看到题目要求时间复杂度是二分法
啦!
我的思路是先找到目标数,然后往目标数的左右分别延伸查找,定下相同数所在的上下界。
vector<int> searchRange(vector<int>& nums, int target) { vector<int> result(2,-1); //初始化为[-1,-1] int size = nums.size(); if(size == 0){ return result; } int low = 0, high = size - 1, med; while(low <= high){ med = (low + high) / 2; if(nums[med] == target){ int left = find_bound(nums,0,med,target); int right = find_bound(nums,size,med,target); result.clear(); result.push_back(left); result.push_back(right); return result; } else if(nums[med] < target){ low = med + 1; } else{ high = med - 1; } } return result; } int find_bound(vector<int> nums,int numb,int med,int target){ int res = med; if(numb<=med){ for(int i = med;i >= numb;i--){ if(nums[i] == target) res = i; if(nums[i] < target) break; } } else{ for(int i = med;i < numb;i++){ if(nums[i] == target) res = i; if(nums[i] > target) break; } } return res; }
写得很煞笔。。我以为运行时间的排名铁定会被排在最后那批。。结果居然在中间……有毒有毒~
0 0
- 第九周算法分析与设计: Search for a Range
- 算法分析与设计课程(5):【leetcode】Search for a Range
- java算法之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
- 大型网站技术架构-8 固若金汤:网站的安全架构
- LintCode 407-加一
- 在ubuntu16.04上使用源码安装caffe2
- redis 的主从复制 总结
- Lab1
- 第九周算法分析与设计: Search for a Range
- 裸眼3D显示技术-全息
- 如何严格设置php中session过期时间
- 1
- js严格模式总结
- 2
- 区别 JavaScript 三个标签问题
- Fixeds, Floats and a Block Damage Effect(定点值,浮点值和块状故障特效)
- 幽默讲解linux的Socket IO模型