0
点赞
收藏
分享

微信扫一扫

部署智能合约以及 javascript 调用合约函数(Web3项目二实战之三)

简单聊育儿 2023-12-19 阅读 35

1.贪心解题

       为实现该算法解题,我们需要定义cur和after得指针,来记录当前差值

        需要定义preDiff来记录前一个差值,判断当前值是否是峰值,保留峰值,删除坡值。

        这里的删除并不是真正的删除,指示不记录此处的result++

        result来记录正负值变化次数n,指示序列应为n+1

 public int wiggleMaxLength(int[] nums) {
        int result=0;
        int preDiff=0;
        for(int i=0;i<nums.length-1;i++){
            if((preDiff>=0&&nums[i+1]-nums[i]<0)
                    ||(preDiff<=0&&nums[i+1]-nums[i]>0)){
                result++;
                //只记录有正负性的preDiff
                preDiff=nums[i+1]-nums[i];
            }

        }
        //result记录了中间值正负变化的次数n,指示n+1个数的序列,有n个中间值
        return result+1;
    }

2.分析

举报

相关推荐

0 条评论