我的思路:
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; }