博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【wiggle-subsequence】leetcode-376
阅读量:6704 次
发布时间:2019-06-25

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

链接:https://leetcode.com/problems/wiggle-subsequence/

解题思路:其实只需要比较a[n+1]-a[n]和a[n]-a[n-1]的正负性即可,定义变量flag记录上一次的正负性,current记录上一个的值,count记录满足要求的总和,于是有以下代码:

class Solution(object):    def wiggleMaxLength(self, nums):        """         :type nums: List[int]        :rtype: int        """        if not nums:            return 0        current = nums[0]        count = 1         flag = None        for num in nums[1:]:            if flag == None:                if num == current:                    continue                if num < current:                    flag = False                else:                    flag = True                count += 1                current = num            elif flag == True:                if num < current:                    flag = False                    count += 1                current = num            else:                if num > current:                    flag = True                    count += 1                current = num        return count

有几点需要注意的是:

1,初始情况是先向上走还是先向下走是未定的,不论哪种情况,都要将计数器+1

2,初始情况有可能是连续相等的值,此时情况仍未定

 

转载于:https://www.cnblogs.com/miyisia/p/5758110.html

你可能感兴趣的文章
C#中的数据格式转换 (未完待更新)
查看>>
基于 Python 官方 GitHub 构建 Python 文档
查看>>
ArcSDE:C#创建SDE要素数据集
查看>>
arulesSequences包做序列模式的关联分析
查看>>
CSS学习(一)
查看>>
SQL Server 数据库安全
查看>>
Android双机(网络和USB)调试及其完美ROOT
查看>>
Linux Suspend过程【转】
查看>>
变量命名那点小事
查看>>
Java 基础【02】 Super 用法
查看>>
makefile初步制作,arm-linux- (gcc/ld/objcopy/objdump)详解【转】
查看>>
VS2005中建立解决方案及多项目
查看>>
第 15 章 Div+CSS页面设计
查看>>
Git tag 给当前分支打标签
查看>>
route命令实例练习
查看>>
spring boot 2.0之基础入门
查看>>
钟南山:高收入群体往往老得快
查看>>
线程相关内存参数sort_buffer/join_buffer等的内存分配时机
查看>>
MSSQL · 最佳实践 · SQL Server备份策略
查看>>
如何调整word中表格某一列占半分比
查看>>