LeetCode Question: 334. Increasing Triplet Subsequence (Level : Medium)
Note:- Scroll horizontally to see the full line of code.
class Solution
{
public:
bool increasingTriplet(vector<int> &nums)
{
int n = nums.size();
vector<int> minimum(n);
vector<int> maximum(n);
int minElem = INT_MAX, maxElem = INT_MIN;
for (int i = 0; i < n; i++)
{
int frontSideElem = nums[i], backSideElem = nums[n - i - 1];
if (frontSideElem < minElem)
{
minElem = frontSideElem;
}
minimum[i] = minElem;
if (backSideElem > maxElem)
{
maxElem = backSideElem;
}
maximum[n - i - 1] = maxElem;
}
for (int i = 1; i < n - 1; i++)
{
int previousMin = minimum[i - 1], nextMaximum = maximum[i + 1];
if (previousMin < nums[i] && nextMaximum > nums[i])
{
return true;
}
}
return false;
}
};
Comments
Post a Comment