leetcode 寻找峰值

# 原来的逻辑  找到索引最大的那个山峰元素并返回其索引

class Solution:
    def solve(self , a ):
        # write code here
        n = len(a)
        if a[n-1] > a[n-2]:
            return n-1
        if a[0]>a[1]:
            return 0
        i=n-2
        while i>0:
            if a[i-1]<a[i] and a[i+1]<a[i]:
                return i
            i-=1

 # 新的逻辑  找到最大的那个山峰元素并返回其索引

class Solution:
    def solve(self , a ):
        # write code here
        resu = 0
        index = 0
        
        if len(a) == 0:
            return None
        if len(a) == 1:
            resu = a
            return 0
        
        for i in range(len(a)):

            if i == 0 and a[i] > resu:
                resu = a[i]
                index = i
            if (i < len(a)-1) and (a[i] > resu) and (a[i] >= a[i-1]) and (a[i] >= a[i+1]):
                resu = a[i]
                index = i
                
            if (i== len(a)-1) and (a[i] >= a[i-1]) and (a[i] > resu):
                resu = a[i]
                index = i
                
        return index      

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值