首页 > 京东笔试,第一道AC\第二道45%,为什么?
头像
ren1111
编辑于 2020-08-27 21:22
+ 关注

京东笔试,第一道AC\第二道45%,为什么?


// 状态当前所处位置,
// 选择:左下、下方、右下
//目标:到最后一层总和最大
//dp定义:走到i,j时最大得分
// dp[i][j] = Math.max(dp[i-1][j-1],dp[i-1][j],dp[i-1][j+1]) + grid[i][j] ;
//base: i = 0: -min -

import java.util.*;


public class Main {
    public static void main(String[] args) {
        // 京东第一题
        Scanner sc = new Scanner(System.in) ;
        int  n = sc.nextInt() ;
        int res = 0 ;
        Queue<Integer> queue = new LinkedList<>() ;
        queue.add(2) ;
        queue.add(3) ;
        queue.add(5) ;
        int temp = 0 ;
        while(res < n){
            temp = queue.poll() ; res ++ ;
            // 将所有的子节点入队
            queue.add(temp * 10 + 2 ) ;
            queue.add(temp * 10 + 3 ) ;
            queue.add(temp * 10 + 5 ) ;
        }
        System.out.print(temp);
    }
        /**
        Scanner sc = new Scanner(System.in) ;
        int  n = sc.nextInt() ;
        int[][] grid = new int[n][2*n-1] ;
        for(int i = 1 ; i < n + 1 ; i++ ) { // 层数
            for(int j = 0; j < 2*i -1; j++){
                grid[i-1][j] = sc.nextInt() ;
            }
        }
        for(int i = 1; i < n; i ++){
            for(int j = 0; j < 2*n - 1 ; j ++){
                if(j - 1 == -1){
                    grid[i][j] = Math.max(grid[i-1][j],grid[i-1][j+1] ) + grid[i][j] ;
                } else if(j + 1 == 2*n -1 ){
                    grid[i][j] = Math.max(grid[i-1][j - 1],grid[i-1][j] ) + grid[i][j] ;
                } else {
                    grid[i][j] = Math.max(Math.max(grid[i - 1][j - 1], grid[i - 1][j]), grid[i - 1][j + 1]) + grid[i][j];
                }
            }
        }
        int max = 0 ;
        for(int i = 0; i < 2*n -1; i ++){
            if(grid[n-1][i] > max){
                max = grid[n-1][i] ;
            }
        }
        System.out.print(max);
    }
         **/

}


全部评论

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

推荐话题

相关热帖

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

近期精华帖

热门推荐