题解 | #牛群的位置排序#
牛群的位置排序
https://www.nowcoder.com/practice/87c81fa27b9a45c49ed56650dfa6f51b
知识点:
二分查找
分析:
1.如果找得到数字,二分法会在相等的选项返回
2.如果找不到数字,一定会是left和right所在数字小于目标数字,此时left=mid+1,跳出循环,那么left的值一定是所要插入到的位置。
编程语言:
C++
完整代码:
int searchInsert(vector<int>& labels, int target) { int left = 0, right = labels.size() - 1; while(left <= right) { int mid = (left + right) / 2; if(labels[mid] == target) { return mid; } else if(labels[mid] < target) { left = mid + 1; } else { right = mid - 1; } } return left; }