博客
关于我
【10月打卡~Leetcode每日一题】845. 数组中的最长山脉(难度:中等){补昨日}
阅读量:256 次
发布时间:2019-03-01

本文共 973 字,大约阅读时间需要 3 分钟。

845. 数组中的最长山脉

在这里插入图片描述
思路:①先找数组中的“山峰”和“山谷”
②定义山峰到两边山谷的距离为山脉的距离
③遍历取最大的山脉

class Solution:    def longestMountain(self, A: List[int]) -> int:        len_ = len(A) - 1        if len_ < 2 :            return 0        peak,valley = list(),list()        if A[0] >= A[1]:            valley.append(1)        for i in range(1,len_):            if A[i]>A[i-1] and A[i]>A[i+1]:                peak.append(i)            elif A[i] == A[i-1] or A[i] == A[i+1]:                valley.append(i)            elif A[i] < A[i-1] and A[i]
= A[len_-1]: valley.append(len_-1) if peak: max_ = 0 for _ in peak: begin,end = 0,len_ for j in valley: if j<_: begin = j else: end = j break max_ = max(max_,end-begin+1) return max_ return 0

时间复杂度是根据数组情况分化的

最优时间复杂度O(n),最差时间复杂度O(n²)

转载地址:http://gqba.baihongyu.com/

你可能感兴趣的文章
mysql创建数据库指定字符集
查看>>
MySQL创建用户报错:ERROR 1396 (HY000): Operation CREATE USER failed for 'slave'@'%'
查看>>
mysql加强(4)~多表查询:笛卡尔积、消除笛卡尔积操作(等值、非等值连接),内连接(隐式连接、显示连接)、外连接、自连接
查看>>
mysql加强(5)~DML 增删改操作和 DQL 查询操作
查看>>
mysql加强(6)~子查询简单介绍、子查询分类
查看>>
MySQL单实例或多实例启动脚本
查看>>
MySQL压缩包方式安装,傻瓜式教学
查看>>
MySQL原理、设计与应用全面解析
查看>>
MySQL原理简介—1.SQL的执行流程
查看>>
mysql参考触发条件_MySQL 5.0-触发器(参考)_mysql
查看>>
MySQL及navicat for mysql中文乱码
查看>>
MySqL双机热备份(二)--MysqL主-主复制实现
查看>>
mysql启动以后会自动关闭_驾照虽然是C1,一直是开自动挡的车,会不会以后就不会开手动了?...
查看>>
mysql启动和关闭外键约束的方法(FOREIGN_KEY_CHECKS)
查看>>
Mysql启动失败解决过程
查看>>
MySQL启动失败:Can't start server: Bind on TCP/IP port
查看>>
mysql启动报错
查看>>
mysql启动报错The server quit without updating PID file几种解决办法
查看>>
mysql和oorcale日期区间查询【含左右区间问题】
查看>>
MySQL和SQL入门
查看>>