python题目汇总高一python题目及答案高中信息技术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基础试题(含答案)
举例 山脉数组的顶峰索引 题目要求 如果一个数组k符合下面两个属性,则称之为山脉数组 • 数组的长度大于等于3 • 存在i,i >0 且 i < len(k)-1, 使得k[0] < k[1]< ... < k[i-1] < k[i] > k[i+1] ... >k[len(k)-1], 这个i就是顶峰索引。 现在,给定一个山脉数组,求顶峰索引。 输入: [0, 1, 3, 5, 4, 3, 2] 输出: 3 思路分析 遍历数组,每个当前元素都和自己右侧的元素比较,如果当前元素大于右侧的元素,则当前这个元素的索引就是山脉数组的顶峰索引 示例代码 # coding=utf-8
def get_top_index(lst): # 注意起始位置和结束位置 for i in range(1, len(lst)-1): if lst[i] > lst[i+1]: return i
if __name__ == '__main__': lst = [0, 1, 3, 5, 4, 3, 2] print get_top_index(lst) 使用二分查找法 上面的算法虽然很简单,但效率并不高,可以使用二分查找法获得更快的速度。二分查找法利用了数组的有序性,山脉数组虽然不是有序的,但是峰顶前和峰顶后却各自有序,前者是升序,后者是降序,那么同样可以利用二分查找法进行查找 代码如下: # coding=utf-8
def get_top_index(lst, start, end): # 中间位置 middle = (start + end)/2 # 恰好是峰顶 if lst[middle] > lst[middle-1] and lst[middle] > lst[middle+1]: return middle # 还没有到达峰顶 if lst[middle] < lst[middle+1]: return get_top_index(lst, middle+1, end) elif lst[middle] > lst[middle+1]: # 已经过了峰顶 return get_top_index(lst, start, middle-1)
if __name__ == '__main__': lst = [0, 1, 3, 5, 4, 3, 2, 1] print get_top_index(lst, 0, len(lst)-1)
|