【leetcode】334. Increasing Triplet Subsequence

题目:
在这里插入图片描述


思路:
抄作业https://www.cnblogs.com/warmland/p/5735208.html

用x和y保存序列中所有nums[i]<nums[j]中nums[j]最小的那一对。两个变量的解释如下:
x:此值尽量压低。
y:此值也尽量压低。其意义是:如果此值为INT_MAX,则说明之前还没有出现过nums[i]<nums[j]的情况;反之则说明已经出现过了nums[i]<nums[j],y就代表之前最小的那一对nums[i]<nums[j](比如,之前序列为2,4,1,3,则y值为3,代表1,3这一对)。


代码实现:

class Solution {
public:
    bool increasingTriplet(vector<int>& nums) {
        if (nums.size() < 3) {
            return false;
        }

        int x, y;
        x = nums[0];
        y = INT_MAX;

        for (int i = 1; i < nums.size(); ++i) {
            if (nums[i] > y) {
                return true;
            }
            else {
                if (nums[i] <= x) {
                    x = nums[i];
                }
                else {
                    y = nums[i];
                }
            }
        }

        return false;
    }
};

参考:
https://www.cnblogs.com/warmland/p/5735208.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章