关闭

LeetCode:Increasing Triplet Subsequence

标签: LeetCodeIncreasing Triplet S
2554人阅读 评论(0) 收藏 举报
分类:

Increasing Triplet Subsequence




Total Accepted: 14818 Total Submissions: 43443 Difficulty: 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.

Your algorithm should run in O(n) time complexity and O(1) space complexity.

Examples:
Given [1, 2, 3, 4, 5],
return true.

Given [5, 4, 3, 2, 1],
return false.

Credits:
Special thanks to @DjangoUnchained for adding this problem and creating all test cases.

Subscribe to see which companies asked this question

Hide Similar Problems
 (M) Longest Increasing Subsequence































java code:

public class Solution {
    public boolean increasingTriplet(int[] nums) {
        
        int max = (1<<31)-1;
        int mid = (1<<31)-1;
        
        for(int num : nums) {
            if(num <= mid)
                mid = num;
            else if(num <= max)
                max = num;
            else
                return true;
        }
        
        return false;
    }
}


1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:324580次
    • 积分:6130
    • 等级:
    • 排名:第4065名
    • 原创:310篇
    • 转载:1篇
    • 译文:0篇
    • 评论:22条
    博客专栏
    最新评论