【题目描述】
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n)
的算法。
【测试用例】
示例1:
输入:nums = [1,3,5,6],target = 5
输出:2
示例2:
输入:nums = [1,3,5,6],target = 2
输出:1
示例2:
输入:nums = [1,3,5,6],target = 7
输出:4
【思路分析】
首先,看到这题,暴力解法应该是第一反应(有充足编程经验的大佬除外)。直接遍历nums中的所有元素,当遇到 ≥ target的元素时,返回当前索引即可。
但是!!!题目限定了必须用时间复杂度为O(logn)的算法,其实变相来说就是要用二分查找法。 练题多了以后,在有序数组中查找元素应该要肌肉记忆一样想到