题解 | #Redraiment的走法#
Redraiment的走法
https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
import java.util.*; public class Main{ public static void main(String[] arg) { Scanner scan = new Scanner(System.in); while (scan.hasNext()) { scan.nextLine(); String[] input1 = scan.nextLine().split(" "); int[] intArr = Arrays.stream(input1).mapToInt(Integer::parseInt).toArray(); int[] k=new int[intArr.length]; for(int j=1;j<intArr.length;j++){ for(int i=0;i<j;i++){ if(intArr[i]<intArr[j]){ k[j]=Math.max(k[j],k[i]+1); } } } Arrays.sort(k); System.out.println(k[k.length-1]+1); } } }
最长递增子序列。dp[i]表示以nums[i]为结尾的最长递增子序列,因此nums[i+1]>nums[i],必有dp[i+1] = dp[i] + 1。