###### tags: `LeetCode` `Medium`
# LeetCode #334 [Increasing Triplet Subsequence](https://leetcode.com/problems/increasing-triplet-subsequence/)
### (Medium)
給你一個整數數組 nums ,判斷這個數組中是否存在長度為 3 的遞增子序列。
如果存在這樣的三元組下標 (i, j, k) 且滿足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否則,返回 false 。
---
建立一數組作為回傳答案的容器, 當遍歷到的值大於數組末尾時, 將該數加入數組末端, 而若有值小於數組內的數, 則找到數組中第一個大於等於該數的數並將其取代(雖然順序不對, 但不影響結果, 因為小於數組末端的數的數量還是一樣, 取代的目的是為了以後若有其他數需要插入, 可降低數組的高度, 即便數組的長度不變)。
當回傳答案的數組長度等於3時, 回傳True。
---
```
class Solution {
public:
bool increasingTriplet(vector<int>& nums) {
vector<int> q;
for(auto &a:nums){
if(q.empty()||a>q.back())q.push_back(a);
else{
auto it = lower_bound(q.begin(),q.end(),a);
*it=a;
}
if(q.size()==3)return 1;
}
return 0;
}
};
```