其实就是查找第一个大于target的数出现的位置, 二分查找
class Solution {
public:
int searchInsert(int A[], int n, int target) {
if(n <= 0)//数组是空的时候
return 0;
int res = find(A, n, target);
return res;
}
//查找第一个大于target的数出现的位置
int find(int A[], int n, int target)
{
int left = 0, right = n - 1;
while(left <= right)
{
int mid = left + ( (right - left) >>1);
if(A[mid] == target)
{
right = mid - 1;
}
else if(A[mid] > target)
right = mid - 1;
else
left = mid + 1;
}
return right + 1;
}
};