首页 > 其他 > 详细

leetcode 334 Increasing Triplet Subsequence

时间:2016-02-17 14:19:27      阅读:195      评论:0      收藏:0      [点我收藏+]

题意:给一个序列nums,问是否存在一个至少长度为3的上升子序列,要求时间复杂度O(n),空间复杂度O(1)。

 

解法:刷的第一道leetcode……medium……读题读错好多遍……真是……

时间复杂度要求的很紧……一时间没想到好方法……于是看了题解orz

大概思想就是用两个变量n1和n2,n1表示当前找到的上升子序列里最小的,n2表示找到的第2小的,当遍历到的这个数x比n1小就更新n1,否则如果比n2小就更新n2,否则就认为答案存在。

一开始没太想明白……后来明白了……n2可以认为是当前存在的长度为2的上升子序列里结尾数字最小的序列的结尾数字,如果存在比它大的答案就成立,n1认为是当前所有数中最小的,如果出现介于n1和n2之间的数时更新了n2,所以我认为n1是作为更新n2的条件存在的,只有在更新n2之前有更小的数字才可以更新,否则就保留为原来的子序列……嗯……

leetcode 334 Increasing Triplet Subsequence

原文:http://www.cnblogs.com/Apro/p/5194976.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!