原题链接
解题思路
题目要求在n时间复杂度,一次遍历搞定。
- 设定min,mid两个指示值。
- 搞定mid的取值。(用flag来找,第一个比min大的数就是mid)
- 只要有大于mid返回true,结束。
解题代码
public class Solution {
public boolean increasingTriplet(int[] nums) {
if(nums.length == 0) return false;
int mid = 0,min = nums[0];boolean flag = true;
for(;i<nums.length;i++){
if(nums[i]<=min){
min = nums[i];
}else if(nums[i]<=mid || flag){
mid = nums[i];
flag = false;
}else {
return true;
}
}
return false;
}
}