美文网首页
leetcode_递增的三元子序列

leetcode_递增的三元子序列

作者: 壹叶壹 | 来源:发表于2018-06-08 23:16 被阅读0次

    给定一个未排序的数组,请判断这个数组中是否存在长度为3的递增的子序列。

    正式的数学表达如下:

    如果存在这样的i, j, k, 且满足 0 ≤ i < j < k ≤ n-1,

    使得arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。

    要求算法时间复杂度为O(n),空间复杂度为O(1) 。

    示例:

    输入[1, 2, 3, 4, 5],

    输出true.

    输入[5, 4, 3, 2, 1],

    输出false.

    致谢:

    特别感谢@DjangoUnchained添加这道题并创建所有测试用例。

    我的思路:设立两个变量one和two,one表示此元素之前的最小值,而two表示其前面有比他小的最小值,即arr【j】的最小值,这样只要有比two大的就存在arr[i] < arr[j] < arr[k] ,返回true;one的目的是为了更新two;如果一个值比one大,却又比two小,则跟新two;这样做是因为one是最小值,所以跟新的two也是满足情况的最小取值;

    代码实现:

    今天和喜欢的人一起打游戏,嘻嘻,开心

                                                                                         咯咯咯

    相关文章

      网友评论

          本文标题:leetcode_递增的三元子序列

          本文链接:https://www.haomeiwen.com/subject/tnezsftx.html