class Solution {
public:
int searchInsert(int A[], int n, int target) {
if(target<=A[0]) return 0;
if(target>A[n-1]) return n;
if(target==A[n-1]) return n-1;
//二分查找
int left=0,right=n-1,mid=0;
while(left<=right)
{
mid=left+(right-left)/2;
if(A[mid]==target)
{
return mid;
}
else if(A[mid]<target)
{
if((mid+1)<n && A[mid+1]>target) return mid+1;
left=mid+1;
}
else
{
if((mid-1)>0 && A[mid-1]<target) return mid;
right=mid-1;
}
}
return -2;//algorithm error
}
};
Search Insert Position
最新推荐文章于 2024-01-15 10:06:47 发布