1. 题目

search insert position


2. 算法

  • 二分查找:O(lgn)

3. 代码

3.1 直接代码

class Solution{
public:
    int SearchInsert(vector<int>& nums,int target){
        for(int i=0;i<nums.size();i++)
            if(nums[0]>=target)  return i;
        return nums.size();
    }
};

3.2 二分查找

class Solution{
public:
    int searchInsert(vector<int>& nums, int target){
        if(nums.back()<target)  return nums.size();
         //back()返回末位元素
        int left=0,right=nums.size()-1;
        while(left<right){
            int mid=left+(right-left)/2;
            if(nums[mid]==target) return mid;
            else if(nums[mid]<target) left=mid+1;
            else right=mid;
        }
        return right;
};

results matching ""

    No results matching ""