Java教程

java_ day9

本文主要是介绍java_ day9,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目标:Java web开发

问题:最长上升子序列

import java.util.*;
public class Main{
    static Scanner sc=new Scanner(System.in);
    static int N=100010;
    //写法一:
    static int a[]=new int[N],q[]=new int[N];
    //写法二:
    // static int[] a=new int[N],q=new int[N];
    public static void main(String args[]){
        int n=sc.nextInt();
        for(int i=0;i<n;i++) a[i]=sc.nextInt();
        int len=0;
        for(int i=0;i<n;i++){
            int l=0,r=len;
            while(l<r){//排队,最适合的在最前,实时更新
                int mid=l+r+1>>1;
                if(q[mid]<a[i]) l=mid;
                else r=mid-1;
            }
            len=Math.max(len,r+1);
            q[r+1]=a[i];
        }
        System.out.println(len);
    }
}
这篇关于java_ day9的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!