您的位置:首页 > 其它

35. Search Insert Position

2017-03-02 21:44 246 查看
题目摘要

给定一个有序数组和一个目标值,从数组里面找出目标值的位置。如果找不到,返回它插入的位置。

解法

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  array search