type
status
date
slug
summary
tags
category
icon
password
bisect的基本用法
notion image
 
返回的是insertion point
 
bisect_left 和 right的区别在于
如果搜索成功
left最后返回的位置 就是值所处的位置 可以直接insert
而 right返回 值右侧的位置 也就是left+1 使得 a[:i] 包含值
同样可以直接insert
 
如果未搜索到完全一样(搜索失败) 全部返回 比值大的第一位置
此时 a[:i] 包含值
notion image
notion image
举个例子 如果用来做成绩查询在哪个档位
那么有4个数 可以产生5个档
notion image
 
这里的key 重点说一下 可以用来快速做判断
注意这个是3.10版本才更新的
 
我们先手写一个search 这里将会是bisect_left
notion image
这种写法会有别于 一般return mid的做法 即便搜索失败也可以返回
小于或等于a的最大index
notion image
 
那么key 可以替代的就是
中的判断
 
假设我们要从 平方后的lis里找 a的平方
这里key 返回值为if判断 即决定什么情况看前半部分
 
同时要注意这里就不用放 搜索目标 作为参数了
放在key里做判断就行
notion image
 
也是因为这种写法 以后binary search可以默认先对 目标是否小于mid 做判断
 
 
附上一些leetcode案例

69.Sqrt(x)

notion image
 

74. Search a 2D Matrix

notion image
这里利用了刚才发现的规则 如果搜索到 bisect_left 和 right才会不一样
否则一致 可以用来比较是否搜索到
 
 
参考:
LRM 代码精读 4-[Rendering]看paper (3d gaussian splatting for real-time radiance field rendering)
Loading...
ran2323
ran2323
我们再来一次, 这一次, 好好来!
Latest posts
Leetcode记录「2」
2024-12-27
Flutter 基础 记录
2024-12-25
Flutter tutorial 记录
2024-12-25
Privicy policy for GitHub To Text (Chrome Extension)
2024-12-22
一些 Kubernetes 笔记
2024-12-21
一些 docker 笔记
2024-12-20
Announcement
 
 
 
 
暂时没有新的内容