LIS 与 LCS
例1:
import java.util.Scanner; import java.util.Arrays; class Main{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n =sc.nextInt(); int []a=new int[1001]; for (int i=1;i<=n ;i++ ) { a[i]=sc.nextInt(); } int []dp=new int[1001]; for(int i=1;i<=n;i++){ dp[i]=1; for(int j=1;j<i;j++){ if(j<i&&a[i]<=a[j]){ dp[i]=Math.max(dp[i],dp[j]+1); } } } Arrays.sort(dp); System.out.println(dp[dp.length-1]); } }
例2:
import java.util.Scanner; import java.util.Arrays; class Main{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int []a=new int [1001]; int ans=-1; for(int i=1;i<=n;i++){ a[i]=sc.nextInt(); } int []dp1=new int[1001]; int []dp2=new int[1001]; for(int i=1;i<=n;i++){ dp1[i]=1; for(int j=1;j<i;j++){ if(a[j]>=a[i]){ dp1[i]=Math.max(dp1[i],dp1[j]+1); } } } for(int i=n;i>=1;i--){ dp2[i]=1; for(int j=n;j>i;j--){ if(a[j]>=a[i]){ dp2[i]=Math.max(dp2[i],dp2[j]+1); } } } for(int i=1;i<=n;i++){ ans=Math.max(ans,dp1[i]+dp2[i]-1); } System.out.println(n-ans); } }
例3:
import java.util.Scanner; import java.util.Arrays; class Main{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s1=sc.nextLine(); String s2=sc.nextLine(); int [][]lcs=new int[1001][1001]; for(int i=1;i<=s1.length();i++){ for(int j=1;j<=s2.length();j++){ if(s1.charAt(i-1)==s2.charAt(j-1)){ lcs[i][j]=lcs[i-1][j-1]+1; }else{ lcs[i][j]=Math.max(lcs[i][j-1],lcs[i-1][j]); } } } System.out.println(lcs[s1.length()][s2.length()]); } }
例4:
import java.util.Scanner; class Main{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s =sc.nextLine(); String s1=""; int [][]dp=new int[3001][3001]; char [] chars=s.toCharArray(); for(int i=chars.length-1;i>=0;i--){ s1+=chars[i]; } for (int i=1;i<=s.length() ;i++ ) { for (int j=1 ;j<=s1.length() ;j++ ) { if(s.charAt(i-1)==s1.charAt(j-1)) { dp[i][j]=dp[i-1][j-1]+1; }else{ dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1]); } } } int sums=s.length()-dp[s.length()][s1.length()]; System.out.println(sums); } }