标签:
/* * 334. Increasing Triplet Subsequence * 2016-7-10 by Mingyang * 这个题目为什么我放在这里呢,因为他可以利用Longest Increasing Subsequence现成的结果做出来 * 然后后面也给出了不利用他的做法,就是维护一个min和middle的两个变量,保证永远middle大于min * 每次遇到一个新的数,如果大于middle,那么恭喜你,找到了三个值 * 万一在middle,min之间,那么更新middle,因为大于老的middle肯定大于新的middle,所以更新middle就好了 * 万一比min更小,那么直接更新min */ //自己的代码: public boolean increasingTriplet(int[] nums) { int len=nums.length; if(nums==null||len<3) return false; int res=lengthOfLIS(nums); if(res>=3) return true; return false; } //网上的维护两个变量的代码 public boolean increasingTriplet1(int[] nums) { if (nums.length < 3) return false; int min = nums[0]; int min2 = Integer.MAX_VALUE; for (int i = 1; i < nums.length; i++) { if (nums[i] > min2) { return true; } else if (nums[i] < min2 && nums[i] > min) { min2 = nums[i]; } else if (nums[i] < min) { min = nums[i]; } } return false; }
334. Increasing Triplet Subsequence
标签:
原文地址:http://www.cnblogs.com/zmyvszk/p/5659004.html