本题要求在一个 有序数组 中找到目标值的索引,或者确定它应该插入的位置。由于数组已经是 升序排列,我们可以使用 二分查找算法(Binary Search),该算法的时间复杂度为 O(log n),满足题目要求。
二分查找方法:
left 和 right,初始值分别为 0 和 n-1。left 超过 right:
mid = (left + right) // 2。给定一个排序数组和一个目标值,在数组中找到目标值,并输出其索引。如果目标值不存在于数组中,输出它将会被按顺序插入的位置。
请必须使用时间复杂度为 0(log n)的算法。
一个整数,表示目标值 target 在数组 nums 中的索引。如果 target 不存在于数组中,则输出它应该被插入的位置。
输入
4 5
1 3 5 6
输出
2
输入
4 2
1 3 5 6
输出
1
输入
4 7
1 3 5 6
输出
4
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.