首页 > 编程语言 >山脉数组 python

山脉数组 python

时间:2024-04-01 21:02:37浏览次数:34  
标签:__ index arr return python lst 数组 山脉

‘’'如果—个数组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就是顶峰索引。
现在,给定—个山脉数组,求顶峰索引。
‘’’

def find_peak(arr):
	n = len(arr)
	if n < 3:
		return False
	# 第一个循环找到发生转折的点
	index = 0
	while index < n - 1:
		if arr[index] < arr[index + 1]:
			index += 1
		else:
			# 当前元素比右侧元素小 ,说明到达峰顶了,停止循环
			
			break
	# 如果index == 0,说明lst[0] < lst[1] 不成立 ,显然不是山脉数组
	# 如果index == len(lst) -1, 说明倒数第2个数小于倒数第一个数,显然也不是山脉数组
	if index == 0 or index == n - 1:
		return False
	
	# 接下来要判断从index 开始到列表末尾,是不是都满足lst[index] > lst[index+1]
	while index < n-1:
		if arr[index] > arr[index + 1]:
			index += 1
		else:
			return False
	
	return True


if __name__ == '__main__':
	arr = [1, 2, 3, 4, 5, 4, 3, 2, 1]
	print(find_peak(arr))

标签:__,index,arr,return,python,lst,数组,山脉
From: https://blog.csdn.net/qingcheng_123456/article/details/137155914

相关文章

  • Python:百度AI开放平台——OCR图像文字识别应用
    一、注册百度AI开放平台使用百度AI服务的步骤为:注册:注册成为百度AI开放平台开发者;创建AI应用:在百度API开放平台上创建相关类型的的AI应用,获得AppID、APIKey和SecretKey;调用API:调用相关类型的API,获得AI功能的结果,为开发者的应用服务。注册的操作步骤:登录百度AI开放平台,百......
  • 学python的第五天
    运算符:算数运算符,比较运算符,逻辑运算符,位运算符,赋值运算符,运算符的优先级1,算术运算符:用于组织整数类型和浮点类型的数据,有一元运算符和二元运算符之分一元运算符,正号(+),负号(-),例如+a还是a,-a是对a的取反运算二元运算符加(+)减(-)乘(*)除(/)取余(%)幂(**)地板除法(//)地板除法(//):a//b......
  • 《Python从入门到实践》项目 数据可视化
    生成数据安装Matplotlibpython-mpipinstallmatplotlib绘制简单的折线图importmatplotlib.pyplotaspltsquares=[1,4,9,16,25]fig,ax=plt.subplots()ax.plot(squares)plt.show()首先导入pyplot模块,并给他指定别名plt,以免反复输入pyplot,然后调用subpl......
  • Python编程快速上手 让繁琐工作自动化 第一部分
      第一章 Python基础**        指数        2**3=8//        整除/商数取整        22//8=2%       取模/取余数数据类型:整型、浮点型、字符串类型可以使用字符串+字符串实现字符串的连接,还可以通过字符创*整型来实现字......
  • QA测试开发工程师面试题满分问答3: python的深拷贝和浅拷贝问题
    在Python中,深拷贝(deepcopy)和浅拷贝(shallowcopy)是用于创建对象副本的两种不同方式。浅拷贝是创建一个新的对象,该对象与原始对象的内容相同(包括内部嵌套对象的引用),但是它们指向相同的内存地址。换句话说,浅拷贝创建了一个对象的表面副本,而不是递归复制所有嵌套对象。当原始对......
  • 11种排序算法(Python实现)
    10种排序算法(Python实现)冒泡排序1、两重循环,每次都将一个点移动到最终位置defBubbleSort(lst):n=len(lst)ifn<=1:returnlstforiinrange(0,n):forjinrange(0,n-i-1):#每轮确定一个点的最终位置iflst[j]>lst[j+1]:......
  • python基础(四)----列表、字典练习题
    好友管理系统请设计一个好友管理系统,每个功能都对应一个序号,用户可根据提示“请输入您的选项”选择序号执行相应的操作,包括:(1)添加好友:用户根据提示“请输入要添加的好友:”输入要添加好友的姓名,添加后会提示“好友添加成功”。(2)删除好友:用户根据提示“请输入删除好友姓名:”输入要删......
  • Python表格处理模块xlrd在Anaconda中的安装
      本文介绍在Anaconda环境下,安装Python读取.xls格式表格文件的库xlrd的方法。  xlrd是一个用于读取Excel文件的Python库,下面是xlrd库的一些主要特点和功能:读取Excel文件:xlrd可以打开和读取Excel文件,并提取其中的数据和元数据。支持多种数据类型:xlrd可以处理包括数字、日......
  • Python列表、字典、元组练习题
    一、将下列姓名长度小于2字符的删除,将写法不同但名字一样的名字合并,并按首字母大写形式输出。names=[‘Bob’,‘JOHN’,‘alice’,‘bob’,‘ALICE’,‘J’,‘Bob’]答案:names=['Bob','JOHN','alice','bob','ALICE','J','Bob']ans={name.title()for......
  • 215. 数组中的第K个最大元素(中等)
    核心思想手写堆构建一个大顶堆,删除k-1个堆顶元素。为什么是size/2-1?考虑最后一个元素的下标size-1那么父节点为(size-1)/2classSolution{publicintfindKthLargest(int[]nums,intk){intsize=nums.length;buildHeap(nums,siz......