博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从小到大有序列list,二分法查找所有大于M,小于N的元素
阅读量:5997 次
发布时间:2019-06-20

本文共 716 字,大约阅读时间需要 2 分钟。

  hot3.png

#coding:utf-8

def search(lst,m,n):

    def search_upper_bound(lst,key):
        low = 0
        high = len(lst)- 1
        if key > lst[high] :
            return []
        if key <= lst[low] :
            return lst
        while low < high :
            mid = (low + high+1) / 2
            if lst[mid] < key:
                low = mid
            else:
                high = mid - 1
        if lst[low] <= key:
            return lst[low+1:]
    def search_lower_bound(lst,key):
        low = 0
        high = len(lst)- 1
        if key <= lst[low] :
            return []
        if key >= lst[high] :
            return lst
        while low < high :
            mid = (low + high ) / 2
            if key < lst[mid]:
                high = mid
            else:
                low = mid +1
        if key <=lst[low]:
            return lst[:low]
    return list(set(search_upper_bound(lst,m)) & set(search_lower_bound(lst,n)))
 
lst = [3,6,9,10,12,23,56,88]
print search(lst,7,55)

转载于:https://my.oschina.net/shshi/blog/182822

你可能感兴趣的文章
免费好用的SNMP网管工具 Sugarnmstool
查看>>
修正IE8访问Exchange2003 OWA新建邮件正文无法填写问题
查看>>
多列子查询
查看>>
如何打造7*24h持续交付通道?阿里高级技术专家的5点思考
查看>>
juniper SRX防火墙NAT测试
查看>>
用linux的策略路由做雙出口負載均衡
查看>>
集结阿里云数据库最强阵容 DTCC 2019 八大亮点抢先看
查看>>
xtrabackup备份
查看>>
查找最小的 k 个元素
查看>>
PHP Get请求URL中参数名包含空格
查看>>
Spinner下拉列表的使用
查看>>
Linux系统中打开文件数量的查看方法
查看>>
redis演练(10) redis Cluster 集群节点维护
查看>>
只会1种2048开发方法 ?你out了!!
查看>>
John the Ripper
查看>>
运维好数据中心的四大法宝
查看>>
基于图文界面的蓝牙扫描工具btscanner
查看>>
安装 SharePoint 2013 Foundation
查看>>
HttpSession小应用:购物车案例
查看>>
收集局域网电脑硬件及软件的信息小程式下载
查看>>