题解 | #Redraiment的走法#
Redraiment的走法
https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] ints = new int[n];
for (int i = 0; i < n; i++) {
ints[i] = scanner.nextInt();
}
System.out.println(maxAscendingSteps(ints));
}
public static int maxAscendingSteps(int[] heights) {
int[] ints = new int[heights.length];
// 默认步数1
Arrays.fill(ints, 1);
// 从第二个元素开始遍历
for (int i = 1; i < heights.length; i++) {
// 确定之前每个元素到该元素可以跳的最大步数
for (int k = 0; k < i; k++) {
if (heights[k] < heights[i]) {
// 跳到当前位置i的最大步数 = 跳到某个位置的已有步数 + 1
ints[i] = Math.max(ints[i], ints[k] + 1);
}
}
}
Arrays.sort(ints);
return ints[ints.length - 1];
}
}
