LeetCode Top Interview Questions 334. Increasing Triplet Subsequence (Java版; Medium)

二次信任 提交于 2020-01-29 16:53:27

welcome to my blog

LeetCode Top Interview Questions 334. Increasing Triplet Subsequence (Java版; Medium)

题目描述

Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the array.

Formally the function should:

Return true if there exists i, j, k 
such that arr[i] < arr[j] < arr[k] given 0 ≤ i < j < k ≤ n-1 else return false.
Note: Your algorithm should run in O(n) time complexity and O(1) space complexity.

Example 1:

Input: [1,2,3,4,5]
Output: true
Example 2:

Input: [5,4,3,2,1]
Output: false

第一次做; 参考题解, 核心: 找到最小的, 次小的, 次次小的

//找到最小的, 次小的, 次次小的
class Solution {
    public boolean increasingTriplet(int[] nums) {
        int small=Integer.MAX_VALUE, medium=Integer.MAX_VALUE;
        for(int i=0; i<nums.length; i++){
            int cur = nums[i];
            // cur <= small
            if(cur <= small)
                small = cur;
            // small < cur <= medium
            else if(cur<=medium)
                medium = cur;
            // cur > medium
            else 
                return true;
        }
        return false;
    }
}

优秀解释

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!