跳至主要內容

二分查找专项练习

AI悦创原创2023年8月21日Python 进阶Python 进阶大约 5 分钟...约 1534 字

0. 二分查找代码

1. 基础题

请注意,这些题目可能需要对二分查找进行一些修改和调整,以满足特定的查找需求,例如查找最接近的值,而不仅仅是精确匹配的值。

1.1 电影播放时长查找

假设你有一个有序的电影时长列表(以分钟为单位),现在你想找到一个电影,其播放时长接近于你现在的空闲时间。写一个函数,使用二分查找来找到与你的空闲时间最接近的电影时长,并返回该电影的索引。

def find_closest_movie_duration(durations, free_time):
    # ... 你的二分查找代码 ...

movie_durations = [80, 95, 105, 123, 138, 150, 165, 176, 188, 210]
free_time = 130
print(find_closest_movie_duration(movie_durations, free_time))

1.2 书籍页数查找

假设你在一个大型图书馆,这个图书馆的书按页数从少到多进行了有序排列。现在,你只记得你要找的书有大约 n 页,但你不确定具体是多少。写一个函数,使用二分查找来帮助你快速定位到那本书的大致位置。

def find_book_by_pages(books, target_pages):
    # ... 你的二分查找代码 ...

book_pages = [100, 150, 200, 250, 300, 350, 400, 450, 500]
target = 340
print(find_book_by_pages(book_pages, target))

1.3 理想温度查找

你有一个按日期排序的气温记录列表,你想知道在过去的某一段时间内,何时的气温最接近你的理想温度。写一个函数,使用二分查找来帮助你找到与你的理想温度最接近的那一天的日期。

def find_ideal_temperature(temperatures, ideal_temp):
    # ... 你的二分查找代码 ...

recorded_temperatures = [15, 17, 19, 21, 22, 23, 24, 25, 27, 29]
ideal = 24
print(find_ideal_temperature(recorded_temperatures, ideal))

答案

1. 基础题目答案
1.1 电影播放时长查找

欢迎关注我公众号:AI悦创,有更多更好玩的等你发现!

公众号:AI悦创【二维码】

AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

方法一:QQ

方法二:微信:Jiabcdefh

通知
关于编程私教&加密文章