解答python题目软件a b problem python题目在哪里能搜到答案
下载地址 https://share.weiyun.com/OvviwGnZ
资料目录 Python练习集100题 100道Python面试题 Python100经典练习题 Python经典题目100道题 Python题库(已收录100道真题) Python100例视频讲解课程 菜鸟教程Python教程100例 130道python练习题,涵盖基础内容的方方面面 Python考试题复习知识点试卷试题 PYTHON测试题和答案 python第一阶段考试题 Python经典面试题和答案解析 python期末考试复习试卷 python习题集大全(附答案解析) 老男孩Python全栈7期练习题(面试真题模拟) 尚观python第一阶段考试(面试真题模拟) 《Python程序设计基础与应用》习题答案 《Python快速编程入门》——课后题答案 Python编程基础张健 , 张良均课后习题及答案 Python程序设计基础及实践(慕课版)郭炜习题答案 Python程序设计基础习题答案与分析 python基础试题(含答案)
举例 完整代码 def find_closet_ele(lst, target, k): closet_ele_lst = [] closest_index = find_closest_index(lst, target) # 距离target最近的元素的位置 closet_ele_lst.append(lst[closest_index])
ele_count = 1 left_index = closest_index - 1 right_index = closest_index + 1 # 借鉴归并排序思路,向两侧滑动遍历 while ele_count < k: left_ele = get_ele(lst, left_index) right_ele = get_ele(lst, right_index) # 哪边元素距离target更近,哪边就走一步,这里注意取绝对值 if abs(target - left_ele) <= abs(right_ele - target): closet_ele_lst.append(left_ele) left_index -= 1 else: closet_ele_lst.append(right_ele) right_index += 1 ele_count += 1
closet_ele_lst.sort() return closet_ele_lst
def get_ele(lst, index): # 索引超出范围的,返回无穷大 if index < 0 or index >= len(lst): return float("inf") return lst[index]
def find_closest_index(lst, target): """ 寻找距离target最近的位置 :param lst: :param target: :return: """ eg_index = find_eg_index(lst, 0, len(lst)-1, target) if eg_index == len(lst): return eg_index - 1 elif eg_index == 0: return 0 else: if target - lst[eg_index-1] <= lst[eg_index] - target: return eg_index-1 else: return eg_index
def find_eg_index(lst, start, end, target): """ 找到第一个大于等于target的元素的位置, 如果lst中最大的元素小于target 则返回len(lst) :param lst: :param start: :param end: :param target: :return: """ if start > end: return end + 1 middle = (start + end)//2 middle_value = lst[middle] if middle_value == target: return middle elif middle_value < target: return find_eg_index(lst, middle+1, end, target) else: return find_eg_index(lst, start, middle-1, target)
if __name__ == '__main__': lst = [1, 5, 8, 9, 17, 20] print(find_closet_ele(lst, 10, 4))
|