Given a sorted array of distinct integers and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.
Example 1:
Input: nums = [1,3,5,6], target = 5
Output: 2
Example 2:
Input: nums = [1,3,5,6], target = 2
Output: 1
Example 3:
Input: nums = [1,3,5,6], target = 7
Output: 4
Example 4:
Input: nums = [1,3,5,6], target = 0
Output: 0
Example 5:
Input: nums = [1], target = 0
Output: 0
Constraints:
1 <= nums.length <= 10^4
-10^4 <= nums[i] <= 10^4
nums contains distinct values sorted in ascending order.
-10^4 <= target <= 10^4
Answers
Answered by
4
Answer:
Solution 1:
return lower_bound(a.begin(), a.end(), t) - a.begin();
___________________________________________
Solution 2:
int low = 0, high = arr.size()-1;
while(low <= high)
{
int mid = low + (high-low)/2;
if(arr[mid] < target)
{
low = mid + 1;
}
else
{
high = mid-1;
}
}
return low;
Explanation:
Similar questions
World Languages,
16 days ago
Computer Science,
16 days ago
Math,
1 month ago
Chemistry,
1 month ago
Biology,
9 months ago
Hindi,
9 months ago