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

最长递增子序列( LIS)

时间:2019-03-09 01:02:17      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:scan   bsp   ring   can   ann   ret   []   exti   java   

 LIS

import java.util.*;
public class Main1{
     
        public static int findLongest(int[] s, int n) {
           int []dp= new int[10001];
           dp[0]=s[0];
           int len=1;
           for(int i=1;i<n;i++){
               int left= 0,right=len-1,mid;
               if(dp[len-1]<s[i])
                   dp[len++]=s[i];
               else{
                   right=len-1;
                   while(left<=right){
                       mid= (left+right)/2;
                       if(dp[mid]<s[i])
                           left=mid+1;
                       else
                           right=mid-1;
                   }
                   dp[left]=s[i];
               }
           }
            return len;
        }
    public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            while(sc.hasNext()){
                int n=sc.nextInt();
                int[] A=new int[n];
                for(int i=0; i<n; i++){
                    A[i]=sc.nextInt();
                }
            int res=findLongest(A, n); 
//                int res=n-max+1;
                System.out.println(res);
            }
     
        }
     
    }

 

最长递增子序列( LIS)

标签:scan   bsp   ring   can   ann   ret   []   exti   java   

原文地址:https://www.cnblogs.com/ls-pankong/p/10498835.html

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