首页 > 其他分享 >334. 递增的三元子序列

334. 递增的三元子序列

时间:2023-03-02 21:06:46浏览次数:32  
标签:false 题意 nums int 334 递增 示例 三元组 三元

给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。

如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。

 

示例 1:

输入:nums = [1,2,3,4,5]
输出:true
解释:任何 i < j < k 的三元组都满足题意
示例 2:

输入:nums = [5,4,3,2,1]
输出:false
解释:不存在满足题意的三元组

 

 

 

class Solution {
    public int wiggleMaxLength(int[] nums) {
        //1 7 7 3 8 
        /** 
            贪心:
                比较当前的差值 的符号和前面的符号是否不一样即可
                    要注意重复的情况  (如果当前的符号是>0||<0 ,之前元素=0(开头元素可能是重复的)  也要++ )
         */

        if(nums.length<=1){
            return nums.length;
        }
        //下面就最少有两个元素
         int pre=nums[1]-nums[0];
        int res=(pre==0?1:2);//记录序列长度
        for(int i=2;i<nums.length;i++){
            int cur=nums[i]-nums[i-1];//记录当前的差
            
            if(cur<0&&pre>=0||cur>0&&pre<=0){
                res++;          
                  pre=cur;
            }
            
            
        }
        return res;

    }
}

 

标签:false,题意,nums,int,334,递增,示例,三元组,三元
From: https://blog.51cto.com/u_14689911/6096743

相关文章