457. 经典二分查找问题
2018-03-19 21:30
417 查看
在一个排序数组中找一个数,返回该数出现的任意位置,如果不存在,返回-1
您在真实的面试中是否遇到过这个题?
Yes
样例
给出数组
对于 target =
对于 target =
对于 target =
挑战
O(logn) 的时间
您在真实的面试中是否遇到过这个题?
Yes
样例
给出数组
[1, 2, 2, 4, 5, 5].
对于 target =
2, 返回 1 或者 2.
对于 target =
5, 返回 4 或者 5.
对于 target =
6, 返回 -1.
挑战
O(logn) 的时间
class Solution { public: /* * @param nums: An integer array sorted in ascending order * @param target: An integer * @return: An integer */ int binarySearch(vector<int> &nums,int target,int first,int last){ while(first<last){ int mid=(first+last)/2; if(nums[mid]==target) return mid; else if(nums[mid]>target) return binarySearch(nums,target,first,mid-1); else return binarySearch(nums,target,mid+1,last); } return -1; } int findPosition(vector<int> &nums, int target) { // write your code here int first=0,last=nums.size()-1; return binarySearch(nums,target,first,last); } };
相关文章推荐
- 【LintCode 简单】457. 经典二分查找问题
- 经典二分查找问题
- 【LintCode-457】经典二分查找问题(Java实现)
- [经典面试题]二分查找问题汇总
- LintCode_Java旅程 经典二分查找问题(折半查找)
- Lintcode 经典二分查找问题
- 经典二分查找问题
- 经典二分查找问题-LintCode
- 经典二分查找问题
- 457 - 经典二分查找问题
- LintCode python 小白-简单题-457经典二分查找问题
- 经典二分查找问题
- lintcode-457-经典二分查找问题
- Lintcode经典二分查找问题
- 【lintcode笔记】经典二分查找问题
- [LintCode] 经典二分查找问题 - Java
- FZU-1881-Problem 1881 三角形问题,打表二分查找~~
- 二分查找引出的问题
- 【经典算法——查找】二分查找
- 二分查找问题全集OK