g0301_0400.s0334_increasing_triplet_subsequence.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0301_0400.s0334_increasing_triplet_subsequence;
// #Medium #Top_Interview_Questions #Array #Greedy #Data_Structure_II_Day_5_Array
// #2022_07_10_Time_2_ms_(99.33%)_Space_93.5_MB_(47.20%)
/**
* 334 - Increasing Triplet Subsequence\.
*
* Medium
*
* 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 exists, return `false`.
*
* **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 * 105
* * -231 <= nums[i] <= 231 - 1
*
* **Follow up:** Could you implement a solution that runs in `O(n)` time complexity and `O(1)` space complexity?
**/
public class Solution {
public boolean increasingTriplet(int[] nums) {
int n = nums.length;
int i = 0;
int low = Integer.MAX_VALUE;
int high = Integer.MAX_VALUE;
while (i < n) {
if (low >= nums[i]) {
low = nums[i++];
} else if (high >= nums[i]) {
high = nums[i++];
} else {
return true;
}
}
return false;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy