给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 注意:你可以假设数组中无重复元素。
示例 : 输入: [1,3,5,6], 5 输出: 2
1、数组有序,所以可以使用二分法实现; 2、使用二分法时要注意边界的考虑,和是否查找了所有元素。
使用了left = 0、right = nums.length - 1,则循环条件必须为left <= right,因为left和right都必须取到 [left, right],所以当left = right时还需要继续判断;使用了left = 0、right = nums.length,则循环条件必须为left < right,因为left必须取到,而right不用取到 [left, right),所以当left = right时不需要继续判断。