334. 递增的三元子序列

题目

给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。

如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。

来源:力扣(LeetCode)


解答

力扣上的一个答案写的很好,就不班门弄斧了,直接上图:

alt

bool increasingTriplet(vector<int> &nums) {
    int n = nums.size();

    if (n < 3) {
        return false;
    }

    int small = INT_MAX;
    int mid = INT_MAX;

    for (auto i: nums) {
        if (i <= small) {
            small = i;
        } else if (i <= mid) {
            mid = i;
        } else if (i > mid) {
            return true;
        }
    }
    return false;
}
我的力扣每日一题 文章被收录于专栏

就是力扣每日一题的记录,解法可能存在参考,但一定是我自己理解和口述的。 题解更注重理解,而不是为了缩短代码行数,为了精简而精简。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务