704. 二分查找
题目
解题
对于有序数组进行二分查找,核心在于根据target与数组中间值的比较,确定target可能位于数组的左半部分或者右半部分,然后将该半段数组视作一个新的数组,重复以上操作。
解答
递归函数求解
首先想到的是递归求解方法,将左半边或者右半边数组重新传入函数进行求解,逻辑上是没有问题的,但是在写代码的过程中发现,这个方法存在一些小问题:
1)需要额外添加辅助变量,来记录新数组在原数组中的对应起点下标;
2)每次函数递归,都需要新创立一个数组,来保存待查找的数组范围,内存消耗较大。
总的来说,并不是一个很合适的方案
查找范围二分
仔细想想,其实并不需要那么复杂。只需要每次对比中间值,然后在左侧或者右侧内继续二分查询就好了。
code
27. 移除元素
题目
解题
顺序遍历所有元素,将非val的元素挨个从下标0的位置开始逐个放置。