解题思路:
这道题如果用三重for循环的思路去写,就想复杂了,除非是找出所有的三元子序列才这样做。我们只需考虑最极端的情况,就是在当前遍历的序列里,固定两个最小的值,一旦遇到大的值,就返回true,这就是贪心的思想。代码如下:
class Solution { public: bool increasingTriplet(vector& 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; } };
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)