35. 搜索插入位置 - 力扣(LeetCode)
题目描述
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3,5,6], 2 输出: 1 示例 3: 输入: [1,3,5,6], 7 输出: 4 示例 4: 输入: [1,3,5,6], 0 输出: 0
题解
二分法查找,不用多说,具体见代码
代码
1 | class Solution { |
执行结果
优化
将mid=(beg+end) / 2改成位移运算,运算效率会高得多。另外看到一篇题解,发现自己写的二分查找还是存在许多问题,比如,这次我就在返回beg还是end犹豫了一下,虽然凭直觉选对了,但还是把循环条件改成beg < end来得好。有时间要抽空看看那篇题解,应该会受益匪浅。