首先参考 https://blog.csdn.net/weixin_53415043/article/details/136273463
小总结:python 中提供了 bisect_left 和 bisect_left ,主要区别是当序列中有相同元素的时候, bisect_left 返回最左边的位置,bisect_right 返回最右边的位置
再考虑如下问题(来自 https://leetcode.cn/problems/my-calendar-i/),有一个sorteddict {1, 3} {6, 8} {9, 11} 表示数轴上的线段,现在我有一个线段{4, 5} 是否能够插入到这个 sorteddict
一个思路是用二分查找法,对于 sorteddict, 它的 key list 是 1 6 9,所以我们用
sorteddict.bisect_left(5) 找到第一个大于等于5 的位置(这里是 1),这里一开始总是无法理解为什么这么做,后来想明白了, 返回的1 ,根据bisect_left 的说明,是要找到插入5 的位置,但是在 5 还没有插入之前,这个1 是当前6 的位置,所以返回的 index 对应的当前元素是就是大于等于目标数字的位置。
关于 bisect
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- @[TOC]([英雄星球六月集训LeetCode解题日报] 第24日 线段树 ) 日报 今天两题之前都做过,重新提...
- LC 35.搜索插入位置[https://leetcode.cn/problems/search-insert-p...