leetcode-递增的三元子序列

2020-05-28  本文已影响0人  棉花糖7

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

定义两个变量,一个保存最小值,并且不断更新,如果 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
上一篇 下一篇

猜你喜欢

热点阅读