zoukankan      html  css  js  c++  java
  • 300. Longest Increasing Subsequence

    该题是要求出字符串中最长的递增子序列的长度。第一种方法的解决思路是动态规划,定义一个与输入数组等长的整型数组,用于记录在该位置前的最长递增子序列长度。

    代码如下:

     1 class Solution {
     2     public int lengthOfLIS(int[] nums) {
     3         
     4         if(nums.length == 0){
     5             return 0;
     6         }
     7         
     8         int[] fn = new int[nums.length];
     9         int len = 1;
    10         
    11         for(int i = 0 ; i < fn.length ; i++){
    12             fn[i] = 1;
    13         }
    14         
    15         
    16         for(int i = 1 ; i < nums.length ; i++){
    17             int maxvar = 0;
    18             for(int j = 0; j < i ; j++){
    19                 if(nums[i] > nums[j]){
    20                     maxvar = Math.max(maxvar, fn[j]);
    21                 }
    22             }
    23             fn[i] = maxvar + fn[i];
    24             len = Math.max(len, fn[i]);
    25         }
    26         
    27         return len;
    28     }
    29 }

    还有一个就是使用二分查找的方法。

    代码如下:

     1 class Solution {
     2     public int lengthOfLIS(int[] nums) {
     3         
     4         if(nums.length == 0){
     5             return 0;
     6         }
     7         
     8         int[] fn = new int[nums.length];
     9         int len = 0;
    10         
    11         for(int num : nums){
    12             int i = Arrays.binarySearch(fn, 0, len, num);
    13             
    14             if( i < 0){
    15                 i = -(i+1);
    16             }
    17             
    18             fn[i] = num;
    19             if( i == len){
    20                 len++;
    21             }
    22         }
    23         
    24         return len;
    25     }
    26 }

    END

  • 相关阅读:
    2016第41周二
    2016第41周一
    2016第40周日
    svn冲突
    海量数据搜索
    网页爬虫的设计与实现(Java版)
    Eclipse中使用正则表达式搜索替换
    nodpad++正则替换
    DWR3.0 dwr 返回值(数组,集合,Map)
    自己用反射写的一个request.getParameter工具类
  • 原文地址:https://www.cnblogs.com/sssysukww/p/9009222.html
Copyright © 2011-2022 走看看