LeetCode刷题_c++版-35搜索插入位置

class Solution {
    
    
public:
//二分查找
    int searchInsert(vector<int>& nums, int target) {
    
    
        int begin = 0;
        int end = nums.size() -1;
        while(begin< end){
    
    
            int mid = (begin + end)/2;
			//如果mid对应值即为目标值,则返回插入位置为mid
            if(nums[mid] == target){
    
    
                return mid ;
            }
            //如果mid对应值小于target,则在后半部分查找
            else if(nums[mid] < target){
    
    
                begin = mid + 1;
            }
            //否则,在前半部分查找
            else end = mid - 1;
        }
        //当begin == end时,只需比较begin处与目标数的大小插入数即可
        if(target > nums[begin]) return begin+1;
        else return begin;
    }
};

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44343355/article/details/129002708
今日推荐