给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。
如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。

------------------------------------------------------------------------------------------------------------------------------
只能说大佬牛逼,附带抄来的代码
class Solution {
public:
bool increasingTriplet(vector<int>& nums) {
int n=nums.size();
if(n<3)
{
return false;
}
int min =INT_MAX,mid=INT_MAX;//是两个默认值,初始化取int类型的最大值,为第一次寻找比其小的值创造了便利
for(int i=0;i<n;++i)
{
if(nums[i]<=min)
{
min=nums[i];
}
else if(nums[i]<=mid)
{
mid=nums[i];
}
else
{
return true;
}
}
return false;
}
};
本文介绍了一种高效判断整数数组中是否存在长度为3的递增子序列的方法。通过维护两个变量来跟踪遍历过程中遇到的最小值和中间值,可以在O(n)的时间复杂度内解决问题。
407

被折叠的 条评论
为什么被折叠?



