LeetCode每日一题 DAY5:LeetCode 35 搜索插入位置

此处主要利用y总的二分模板
check条件为:我们要找到第一个大于等于target的位置即可,即check if (if(nums[mid] >= target))
此时利用模板中的更新条件 if(nums[mid] >= target) r = mid 即可
注意:需要注意的是要考虑特殊情况当数组中所以的数都比target要小时,此时要返回l + 1,其边界条件为l = r = nums.size() - 1 && target > nums[l],二者区缺一不可

class Solution {
public:
    int searchInsert(vector& nums, int target) {
        int l = 0, r = nums.size() - 1;
         while (l < r){
             int mid = l + r >> 1;
             if (nums[mid] >= target) r = mid;
             else l = mid + 1;
         }
         
         if (l == nums.size() - 1 && target > nums[l])  return l+1;
         else return l;
    }
};

你可能感兴趣的:(leetcode,算法,职场和发展)