Classical Binary Search(Ladder)
Description
Find any position of a target number in a sorted array. Return -1 if target does not exist.
Example:
Given [1, 2, 2, 4, 5, 5].
For target = 2, return 1 or 2.
For target = 5, return 4 or 5.
For target = 6, return -1.Challenge: O(logn) time
Link
Method
- Binary Search
- x
Example
- 1
class Solution { public: /** * @param A an integer array sorted in ascending order * @param target an integer * @return an integer */ int findPosition(vector<int>& nums, int target) { // Write your code here if (nums.empty()) { return -1; } int start = 0; int end = nums.size()-1; while (start+1 < end) { int mid = start + (end-start)/2; if (target == nums[mid]) { return mid; } else if (target > nums[mid]) { start = mid; } else { end = mid; } } if (target == nums[start]) { return start; } if (target == nums[end]) { return end; } return -1; } };
Similar problems
x
Tags
x