我的思路:
1、在一个排序好的序列中,找一个数,返回下标值,如果没有返回插入点的下标值。
2、顺序查找。
代码如下:
int searchInsert(int A[], int n, int target) {
if (n <= 0)
return 0;
for (int i = 0; i < n; i++)
if (target <= A[i])
return i;
return n;
}
别人思路:
1、二分查找, 这是很常见的,但是这里要考虑没有该值的情况怎么处理。
代码如下:
int searchInsert(int A[], int n, int target) {
int l = 0, r = n-1, mid;
while (l < r) {
mid = (l + r) >> 1;
if (A[mid] < target)
l = mid + 1;
else
r = mid;
}
return A[l] >= target ? l : l + 1;
}