解题思路:
这道题如果用三重for循环的思路去写,就想复杂了,除非是找出所有的三元子序列才这样做。我们只需考虑最极端的情况,就是在当前遍历的序列里,固定两个最小的值,一旦遇到大的值,就返回true,这就是贪心的思想。代码如下:
class Solution {
public:
bool increasingTriplet(vector<int>& nums) {
int a = INT_MAX;
int b = INT_MAX;
for(auto& num : nums) {
if(num <= a) {
a = num;
} else if(num <= b) {
b = num;
} else return true;
}
return false;
}
};