博客
关于我
【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/

你可能感兴趣的文章
new work
查看>>
new 一个button 然后dispose,最后这个button是null吗???
查看>>
NewspaceGPT的故事续写能力太强了
查看>>
NewspaceGPT绘制时序图
查看>>
NewspaceGPT绘制类图
查看>>
new一个对象的过程
查看>>
new和delete用法小结
查看>>
new对象时,JVM内部究竟藏了什么小秘密?
查看>>
new操作符的实现原理
查看>>
Next.js React Server Components 教程
查看>>
NextGen Mirth Connect XStream反序列化远程代码执行漏洞(CVE-2023-43208)
查看>>
next项目部署到服务器pm2进程守护
查看>>
nexus 介绍
查看>>
nexus上传jar
查看>>
Nexus指南中的更新强调集成和透明度的重要性
查看>>
Nexus指南已经发布
查看>>
Nexus(1):Nexus的安装与配置
查看>>
NFC技术:概述
查看>>
NFinal学习笔记 02—NFinalBuild
查看>>
NFS
查看>>