4.9拼多多笔试第一题,为啥这个只能过20%,有大佬指点一下吗?
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); if(n<3){ System.out.println(0); return; } int[] arr = new int[n]; for(int i = 0;i<n;i++){ arr[i] = sc.nextInt(); } int res = 0; int[] dp1 = new int[n]; int[] dp2 = new int[n]; Arrays.fill(dp1,1); Arrays.fill(dp2,1); for(int i = 1;i<n;i++){ for(int j = 0;j<i;j++){ if(arr[i]>arr[j]){ dp1[i] = Math.max(dp1[i],dp1[j]+1); } if(arr[n-i-1]>arr[n-j-1]){ dp2[n-i-1] = Math.max(dp2[n-j-1]+1,dp2[n-i-1]); } } } for(int i = 0;i<n;i++){ if(dp1[i]>1&&dp2[i]>1){ res = Math.max(dp1[i]+dp2[i]-1,res); } } System.out.println(res); } }
全部评论
(2) 回帖