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