首页 > 网易笔试
头像
晴天Tia
编辑于 2020-08-08 17:04
+ 关注

网易笔试

4道题有1个小时花在第一题,就a了一道第二题。。。。
结果出来一看,除个2就好了,我人都傻了。
话说为什么我第一题用动态规划做一直报数组越界,我没看出来有啥问题啊
请教一下万能的网友

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[n];
        int m = 0;
        long max = 0;
        for(int i=0;i<n;i++){
            a[i] = sc.nextInt();
            if(a[i] > m){
                m = a[i];
            }
        }
        if(m < 5){
            for(int i=0;i<n;i++){
                if(a[i] == 4){
                    max += 2;
                }else if(a[i] == 1){
                    continue;
                }else {
                    max += 1;
                }
            }
        }else {
            int[] dp = new int[m+1];
            dp[0] = 0;
            dp[1] = 0;
            dp[2] = 1;
            dp[3] = 1;

            for(int i=4;i<=m;i++){
                dp[i] = Math.max(dp[i-2]+1,dp[i-3]+1);
            }

            for(int i=0;i<n;i++){
                max += dp[a[i]];
            }
        }
        System.out.println(max);
    }

全部评论

(0) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐