334. 递增的三元子序列

143 阅读1分钟

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

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

1、双变量

因为判断是否存在长度为3,只要保证前两个有序,后面出现比前更大的数就可以

public boolean increasingTriplet(int[] nums) {

    int min = Integer.MAX_VALUE;
    int mid = Integer.MAX_VALUE;

    for (int i = 0; i < nums.length; i++) {
        if (nums[i] <= min){
            min = nums[i];
        }else if(nums[i] <= mid){
            mid = nums[i];
        }else {
            return true;
        }
    }
    return false;
}