Increasing Triplet Subsequence
Problem Descriptionβ
Given an integer array nums
, return true
if there exists a triple of indices (i, j, k) such that i < j < k
and nums[i] < nums[j] < nums[k]
. If no such indices exist, return false
.
Examplesβ
Example 1:
Input: nums = [1, 2, 3, 4, 5]
Output: true
Explanation: Any triplet where i < j < k is valid.
Example 2:
Input: nums = [5, 4, 3, 2, 1]
Output: false
Explanation: No triplet exists.
Example 3:
Input: nums = [2, 1, 5, 0, 4, 6]
Output: true
Explanation: The triplet (3, 4, 5) is valid because nums[3] == 0 < nums[4] == 4 < nums[5] == 6.
Constraintsβ
1 <= nums.length <= 5 * 10^5
-2^31 <= nums[i] <= 2^31 - 1
Follow-upβ
Could you implement a solution that runs in O(n)
time complexity and O(1)
space complexity?
Solution for Increasing Triplet Subsequence Problemβ
Approachβ
To solve this problem, we can maintain two variables first and second to represent the smallest and second smallest numbers encountered so far. The algorithm iterates through the array and updates these two variables. If we find a number that is larger than second, we have found an increasing triplet.
Code in Different Languagesβ
- C++
- Java
- Python
class Solution {
public:
bool increasingTriplet(vector<int>& nums) {
int first = INT_MAX, second = INT_MAX;
for (int num : nums) {
if (num <= first) {
first = num;
} else if (num <= second) {
second = num;
} else {
return true;
}
}
return false;
}
};
class Solution {
public boolean increasingTriplet(int[] nums) {
int first = Integer.MAX_VALUE, second = Integer.MAX_VALUE;
for (int num : nums) {
if (num <= first) {
first = num;
} else if (num <= second) {
second = num;
} else {
return true;
}
}
return false;
}
}
class Solution:
def increasingTriplet(self, nums: List[int]) -> bool:
first = second = float('inf')
for num in nums:
if num <= first:
first = num
elif num <= second:
second = num
else:
return True
return False
Complexity Analysisβ
- Time Complexity: , where is the length of the array. We iterate through the array once.
- Space Complexity: . We use a constant amount of extra space for the variables
first
andsecond
.
Authors:
Loading...