Fork me on GitHub

18. 二分查找-重复元素,最左边的插入点

正文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
fun searchInsert(nums: IntArray, target: Int): Int {
var left = 0
var right = nums.size - 1

while (left <= right) {
val mid = left + (right - left) / 2

if (nums[mid] == target) {
// 找到了目标元素,返回索引
return mid
} else if (nums[mid] < target) {
// 目标元素在右半部分,更新左边界
left = mid + 1
} else {
// 目标元素在左半部分,更新右边界
right = mid - 1
}
}

// 目标元素不存在,返回插入位置
return left
}
,