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

全部评论

相关推荐

07-02 22:46
门头沟学院 Java
码农索隆:hr:“管你投没投,先挂了再说”
点赞 评论 收藏
分享
写不来代码的小黑:这么小的城市能有做it的公司也不容易
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务