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