题目:
思路:
抄作业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;
}
};