zoukankan      html  css  js  c++  java
  • 334. Increasing Triplet Subsequence

          /*
           * 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;
            }    
  • 相关阅读:
    计算机思维
    easyui增删改查前段代码
    文本相似度分析
    布隆过滤器
    SQL Server事务
    堆排序(Heapsort)
    游标
    存储过程
    触发器
    Thread部分总结以及小例子
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5659004.html
Copyright © 2011-2022 走看看