leetcode-递增的三元子序列

这道题想了好久,想不出来。这道题用了巧妙的方法

定义两个变量,一个保存最小值,并且不断更新,如果 nums[i]<=small,则small = nums[i]

然后另一个变量mid,保存中间值, 如果 nums[i] > small && nums[i] <=mid,就更新mid

最后如果还有一个数 nums[i] > mid 说明就存在这样一个三元子。

有一个小技巧就是,假设现在的 small = 3  mid = 5,又来了一个数1 比small小,此时更新small的值,那么small和mid的值就不是按照递增序列的,但是这里隐藏着一个事实就是,存在一个比现在small大,而比mid小的 前最小值,因此只要在出现一个比mid大的值,也是符合要求的。



题目


code
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。