首先参考 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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- @[TOC]([英雄星球六月集训LeetCode解题日报] 第24日 线段树 ) 日报 今天两题之前都做过,重新提...
- LC 35.搜索插入位置[https://leetcode.cn/problems/search-insert-p...
- 题目1 题目链接[https://leetcode.cn/problems/4sum]题目大意:给你一个由 n 个...