第一版写法(如下)TLE了,所以得用二分啊
def get_result(wine_price,today_money):
for i in range(len(wine_price)):
if wine_price[i] > today_money:
return i
return len(wine_price)
n = int(raw_input())
wine_price = map(int,raw_input().split())
wine_price = sorted(wine_price)
q = int(raw_input())
for i in range(q):
temp = int(raw_input())
print get_result(wine_price,temp)第二版写法(如下)
def get_index(wine_price,today_money):
left = 0
right = len(wine_price) - 1
while left < right:
mid = (left + right)/2
if wine_price[mid] <= today_money:
left = mid + 1
else:
right = mid
return right
def get_result(wine_price,today_money):
result = get_index(wine_price,today_money)
if result == (len(wine_price)-1) and today_money >= wine_price[-1]:
result += 1
return result
n = int(raw_input())
wine_price = map(int,raw_input().split())
wine_price = sorted(wine_price)
q = int(raw_input())
for i in range(q):
temp = int(raw_input())
print get_result(wine_price,temp)
本文介绍了一种通过二分查找算法优化葡萄酒价格查询的方法,解决了原始遍历查找效率低下的问题。通过实现二分查找函数,提高了在大量数据中查找特定价格下可购买葡萄酒数量的效率。
388

被折叠的 条评论
为什么被折叠?



