package
0.0.0-20240501152552-44d6fb1afb4e
Repository: https://github.com/bwangelme/leetcode-go.git
Documentation: pkg.go.dev
# Functions
BinarySearchFirst*
返回 arr 中第一个 == num 的数字的索引
## 复杂度分析
最坏情况下,所有数字都相等,此时时间复杂度为 O(logN)
由于运算过程中没有额外申请和 len(arr) 有关的内存空间,所以空间复杂度是 O(1)
**/.
BinarySearchFirstGt*
## 题目
查找数组中第一个 大于 指定值的数的索引
## 解题思路
从 high 向 low 压缩,每次 high 压缩的时候,判断 high 是不是这个数
## 复杂度分析
最坏时间复杂度是 O(logN), N 为数组长度
*/.
BinarySearchFirstV2*
## 功能
返回 arr 中第一个 == num 的数字的索引
**/.
BinarySearchLast*
返回 arr 中最后一个 == num 的数字的索引
## 复杂度分析
最坏情况下,所有数字都相等,此时时间复杂度为 O(logN)
由于运算过程中没有额外申请和 len(arr) 有关的内存空间,所以空间复杂度是 O(1)
**/.
BinarySearchLastLt*
## 题目
查找最后一个小于指定数的数的索引
## 思路
low 不断网上压缩,low 压缩时判断 low 是否是最后一个小于指定数
## 复杂度分析
时间复杂度是 O(logN)
*/.
BinarySearchLastV2*
## 功能
返回 arr 中最后一个 == num 的数字的索引
**/.
Sqrt*
使用二分查找实现开平方根,精确到小数点后六位
## 复杂度分析
时间复杂度是 O(logN)
它要求精确到小数点后6位,但整体趋势还是个对数形式的过程,所以时间复杂度是 O(logN)
没有申请新空间,空间复杂度是 O(1)
*/.