题目摘要
给定一个有序数组和一个目标值,从数组里面找出目标值的位置。如果找不到,返回它插入的位置。
解法
1. 查找先想到二分法,此处需要改良二分查找法。
2. 具体思想为二分,如果目标值在区间外,或者找到目标值,则可以确定目标位置。如在区间右边,返回end + 1
;如在区间左边,返回start
2. 使用二分法时,应当防止中值溢出,用mid = left + (right - left) / 2
代替mid = (left + right) / 2
注意
可问问题
原题
Given a sorted array 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.
You may assume no duplicates in the array.
Here are few examples.
[1,3,5,6]
, 5 → 2
[1,3,5,6]
, 2 → 1
[1,3,5,6]
, 7 → 4
[1,3,5,6]
, 0 → 0