334. Increasing Triplet Subsequence

class Solution {
public:
    bool increasingTriplet(vector<int>& nums) {
        int first = INT_MAX, second = INT_MAX;

        int N = nums.size();
        for (int i = 0; i < N; i++) {
            if (nums[i] <= first) {
                first = nums[i];
            }
            else if (nums[i] <= second) {
                second = nums[i];
            }
            else {
                return true;
            }
        }

        return false;
    }
};
X案例 75 超时
class Solution {
public:
    bool increasingTriplet(vector<int>& nums) {
        long long N = nums.size();
        vector<int> dp(N, 1);

        long long maxLen = 1;
        for (long long i = 1; i < N; i++) {
            for (long long j = 0; j < i; j++) {
                if (nums[i] > nums[j]) {
                    if (dp[i] < dp[j]+1) {
                        dp[i] = dp[j]+1;
                    }
                }
            }

            if (maxLen < dp[i]) {
                maxLen = dp[i];
            }
            //maxLen = max(maxLen, dp[i]);
            if (maxLen >= 3) {
                return true;
            }
        }

        return false;
    }
};
posted @ 2025-02-24 07:28  七块蛋糕  阅读(17)  评论(0)    收藏  举报