判断数字是否在区间 python实现
【摘要】 例如有一个递增数组a=[1,3,5,6,7,9,10,15,18,22], 有三个数5,7,1,21,怎样能快速找到他们的在数组中的区间,返回他前后两个数的位置。 此例中5的返回值是2,3 7的返回值是3,4 1的返回值是0,1 21的返回值是10,11
bisect 二分查找模块:
from bisect import bisect_left...
例如有一个递增数组a=[1,3,5,6,7,9,10,15,18,22],
有三个数5,7,1,21,怎样能快速找到他们的在数组中的区间,返回他前后两个数的位置。
此例中5的返回值是2,3
7的返回值是3,4
1的返回值是0,1
21的返回值是10,11
bisect 二分查找模块:
from bisect import bisect_left
a = [1,3,5,6,7,9,10,15,18,22]
print(bisect_left(a, 5))
直接循环方法:
-
i = 4
-
a = [0, 3, 7, 29, 30]
-
-
res = 0
-
while res < len(a) and i >= a[res]:
-
res += 1
-
print(i, res)
应该可以用二分法查找。
文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/117290473
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)