This commit is contained in:
krahets
2023-08-27 23:40:56 +08:00
parent 48980ddf28
commit df0f7d3be1
64 changed files with 255 additions and 261 deletions
+6 -6
View File
@@ -13,10 +13,10 @@ status: new
回忆二分查找插入点的方法,搜索完成后 $i$ 指向最左一个 `target` ,**因此查找插入点本质上是在查找最左一个 `target` 的索引**。
考虑通过查找插入点的函数实现查找左边界。请注意,数组中可能不包含 `target` 此时有两种可能:
考虑通过查找插入点的函数实现查找左边界。请注意,数组中可能不包含 `target` 这种情况可能导致以下两种结果。
1. 插入点的索引 $i$ 越界
2. 元素 `nums[i]``target` 不相等
- 插入点的索引 $i$ 越界
- 元素 `nums[i]``target` 不相等
当遇到以上两种情况时,直接返回 $-1$ 即可。
@@ -334,9 +334,9 @@ status: new
### 2.   转化为查找元素
我们知道,当数组不包含 `target` 时,最 $i$ , $j$ 会分别指向首个大于、小于 `target` 的元素。
我们知道,当数组不包含 `target` 时,最 $i$ $j$ 会分别指向首个大于、小于 `target` 的元素。
根据上述结论,我们可以构造一个数组中不存在的元素,用于查找左右边界,如图 10-8 所示
因此,如图 10-8 所示,我们可以构造一个数组中不存在的元素,用于查找左右边界。
- 查找最左一个 `target` :可以转化为查找 `target - 0.5` ,并返回指针 $i$ 。
- 查找最右一个 `target` :可以转化为查找 `target + 0.5` ,并返回指针 $j$ 。
@@ -345,7 +345,7 @@ status: new
<p align="center"> 图 10-8 &nbsp; 将查找边界转化为查找元素 </p>
代码在此省略,值得注意的有:
代码在此省略,值得注意以下两点。
- 给定数组不包含小数,这意味着我们无须关心如何处理相等的情况。
- 因为该方法引入了小数,所以需要将函数中的变量 `target` 改为浮点数类型。