本来直接遍历就过了,后来大神说要用二分法,尝试写了一下,不知道这算不算二分?
class Solution {
public:
int searchInsert(int A[], int n, int target) {
int mid,left,right;
if(target<=A[0]) return 0;
if(target>A[n-1]) return n;
left =1;
right = n-1;
while(1){
mid = (left+right)/2;
if(mid==left){
if(A[mid]>=target) return mid;
return mid+1;
}
if(A[mid]>target) right = mid;
if(A[mid]<target) left = mid;
if(A[mid]==target) return mid;
}
}
};