码迷,mamicode.com
首页 > 其他好文 > 详细

334. Increasing Triplet Subsequence

时间:2016-07-11 00:57:38      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

      /*
       * 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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!