leetcode相关C++算法解答: https://github.com/Nereus-Minos/C_plus_plus-leetcode
题目:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5 输出: 2
示例 2:
输入: [1,3,5,6], 2 输出: 1
示例 3:
输入: [1,3,5,6], 7 输出: 4
思路:
变种二分查找法,有三种情况:一。当begin>end时,表明nums为空,则直接ret=0;二。当(begin == end - 1) || (begin == end)时,为正常二分查找到最后,需判断begin或end是否==target,或判断插入位置;三。递归二分查找
代码:
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
//思路:变种二分查找法,有三种情况:一。当begin>end时,表明nums为空,则直接ret=0;二。当