參考資訊:
https://www.cnblogs.com/grandyang/p/5194599.html
題目:

解答1:
bool increasingTriplet(int* nums, int numsSize)
{
int cc = 0;
int m1 = INT_MAX;
int m2 = INT_MAX;
for (cc = 0; cc < numsSize; cc++) {
if (m1 >= nums[cc]) {
m1 = nums[cc];
}
else if (m2 >= nums[cc]) {
m2 = nums[cc];
}
else {
return true;
}
}
return false;
}
解答2:
#define min(a, b) a > b ? b : a
#define max(a, b) a > b ? a : b
bool increasingTriplet(int* nums, int numsSize)
{
int cc = 0;
int *r_min = malloc(sizeof(int) * numsSize);
int *r_max = malloc(sizeof(int) * numsSize);
r_min[0] = nums[0];
for (cc = 0; cc < (numsSize - 1); cc++) {
r_min[cc + 1] = min(r_min[cc], nums[cc]);
}
r_max[numsSize - 1] = nums[numsSize - 1];
for (cc = numsSize - 1; cc > 0; cc--) {
r_max[cc - 1] = max(r_max[cc], nums[cc]);
}
for (cc = 0; cc < numsSize; cc++) {
if ((nums[cc] > r_min[cc]) && (nums[cc] < r_max[cc])) {
return true;
}
}
free(r_min);
free(r_max);
return false;
}