题解 | #Redraiment的走法#
Redraiment的走法
https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
import java.util.Arrays; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int a = in.nextInt(); int[] b = new int[a]; for (int i = 0; i < a; i++) { b[i] = in.nextInt(); } System.out.println(getMaxStep(b)); } in.close(); } private static int getMaxStep(int[] arr) { int maxStep = 1; int [] dp = new int[arr.length]; Arrays.fill(dp, 1); for (int i = 1; i < arr.length; ++i) { for (int j = 0; j < i; ++j) { if (arr[j] < arr[i]) { dp[i] = Math.max(dp[i], dp[j] + 1); } } maxStep = Math.max(maxStep, dp[i]); } return maxStep; } }