题解 | #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];
    }
}

全部评论

相关推荐

03-27 17:33
门头沟学院 Java
代码飞升:同学院本,你要注意hr当天有没有回复过,早上投,还要打招呼要推销自己,不要一个劲投
点赞 评论 收藏
分享
03-12 15:34
已编辑
北京邮电大学 Java
呓语0613:老哥你这黑马点评改造是在哪里看的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务