【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

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