题解 | #Redraiment的走法#

Redraiment的走法

https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa

import java.util.*;

public class Main {
    public static void main(String args[]) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            int n = scan.nextInt();
            int [] a = new int[n];
            for (int i = 0; i < n; i++) {
                a[i] = scan.nextInt();
            }
            
            int [] maxl = new int[n];//存储到各点的最长步数
            int [] maxa = new int[n];//存储各最长步数对应的最大梅花桩高度
            maxl[0] = 1;
            maxa[0] = a[0];
            for (int i = 1 ; i < n; i++) {
                int index = i;
                int maxlen = 1;
                for (int j = i - 1; j >=0; j--) {
                    if (a[i] > maxa[j]) {//a[i]的值动态更新,不要把状态值都压缩到maxl[i]而后续i+1处直接通过maxl[i]计算;应该通过多个状态值maxl[0]-maxl[i-1]计算maxl[i],即人人为我;新的参数a[i],我为人人,a[i]用于参与maxl[0]-maxl[i]的运算
                        if (maxl[j] + 1 > maxlen) {
                            index = j;
                            maxlen = maxl[j] + 1;                             
                        }
                    }
                    
                }
                maxl[i] = maxl[index] + 1;
                maxa[i] = a[i];
            }
            int maxlen = 0;
            for (int i = 0 ; i < a.length; i++) {
                if (maxl[i] > maxlen) {
                    maxlen = maxl[i];
                }
            }
            System.out.println(maxlen);
        }
    }
}

全部评论

相关推荐

07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 18:35
简历上把1个月实习写成了3个月,会进行背调吗?
码农索隆:一个月有一个月的实习经历,三个月有三个月的实习经历
点赞 评论 收藏
分享
点赞 评论 收藏
分享
见见123:简历没有啥问题,是这个社会有问题。因为你刚毕业,没有工作经历,现在企业都不要没有工作经历的。社会病了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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