Middle-题目44:334. Increasing Triplet Subsequence

原创 2016年05月31日 16:05:17

题目原文:
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.
题目大意:
给出一个数组,判断是否存在一个递增的长度为3的子序列。
题目分析:
(1) 朴素解法:O(n3)暴力搜索;
(2) 最长递增子列:引用Middle-题目33的方法判断最长递增子列的长度是否>=3,最好的时间复杂度是O(nlogn)。
(3) O(n)算法:扫描一遍数组,令a1是当前最小值,a2是a1以后次小值,则如果当前的数比a2还大,就存在。
源码:(language:java)

public class Solution {
    public boolean increasingTriplet(int[] nums) {
        int a1 = Integer.MAX_VALUE,a2 = Integer.MAX_VALUE;
        for(int num : nums) {
            if(num<=a1) 
                a1=num;
            else if(num<=a2)
                a2=num;
            else
                return true;
        }
        return false;
    }
}

成绩:
1ms,beats 34.32%,众数1ms,65.68%

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

[leetcode] 334. Increasing Triplet Subsequence 解题报告

题目链接:https://leetcode.com/problems/increasing-triplet-subsequence/ Given an unsorted array retu...
  • qq508618087
  • qq508618087
  • 2016年02月19日 13:14
  • 730

leetcode笔记:Increasing Triplet Subsequence

题目大意是,给定一个无序数组,判断其中是否存在一个长度为3的递增子序列。...
  • liyuefeilong
  • liyuefeilong
  • 2016年02月22日 17:19
  • 1118

[leetcode] 334. Increasing Triplet Subsequence

Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar...
  • TstsUgeg
  • TstsUgeg
  • 2016年02月17日 11:39
  • 528

334. Increasing Triplet Subsequence**

Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar...
  • alwaystry
  • alwaystry
  • 2017年01月23日 13:14
  • 101

[LeetCode] Increasing Triplet Subsequence

Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar...
  • u011331383
  • u011331383
  • 2016年02月16日 21:39
  • 3058

334. Increasing Triplet Subsequence

题目: Given an unsorted array return whether an increasing subsequence of length 3 exists or not ...
  • sinat_31360161
  • sinat_31360161
  • 2016年02月16日 14:25
  • 396

Leetcode Increasing Triplet Subsequence

Leetcode Increasing Triplet Subsequence,本题主要的难点是如何使用o(n)的方法进行判别。 我们可以这样考虑,在扫描的时候提供一个下界(low)和上界(high...
  • u010842603
  • u010842603
  • 2016年04月24日 18:02
  • 675

Leetcode 334. Increasing Triplet Subsequence (Python)

题目大意确定一个未排序数组中是否存在长度为3的上升子序列算法和leetcode 300思路一样,大家可以看这里代码class Solution(object): def binary_sear...
  • wds2006sdo
  • wds2006sdo
  • 2016年07月19日 02:05
  • 2688

LeetCode 334. Increasing Triplet Subsequence

Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar...
  • github_34333284
  • github_34333284
  • 2016年05月01日 06:08
  • 102

[leetcode]334. Increasing Triplet Subsequence

题目链接:https://leetcode.com/problems/increasing-triplet-subsequence/?tab=Description Given an unsort...
  • xiaocong1990
  • xiaocong1990
  • 2017年03月12日 16:18
  • 111
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目44:334. Increasing Triplet Subsequence
举报原因:
原因补充:

(最多只允许输入30个字)