8.27京东笔试AC记录 Java岗

第一题
找规律,跟leetcode上的一道题比较相似,题号记不清了....
public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int digit = 1;
		int i = 3;
		String res = "";
		while(n-i > 0) {
			n -= i;
			i*=3;
			digit++;
		}
		while(digit>0) {
			int count = (int)Math.pow(3, digit-1);
			int num = (n-1)/count;
			res += num==0? "2":num==1? "3":"5";
			n -= (num*count);
			digit--;
		}
		System.out.println(res);
	}


第二题
倒推dp应该是最优解法,我直接暴力dfs....居然过了
import java.util.*;
public class Main {
    static int max = 0;
    static int[][] map;
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        int n = sc.nextInt();
        map = new int[n][2 * n-1];
        for(int i = 1; i <= n; i++) {
            for(int j = 1; j <= 2 * i -1; j++) {
                map[i-1][j-1] = sc.nextInt();
            }
        }
        dfs(0,0,0,n);
        System.out.println(max);
    }
    private static void dfs(int i, int j, int sum,int n) {
        if(i == n) max = Math.max(max,sum);
        else{
            for(int k = 0; k < 3; k++) {
                dfs(i+1,j+k,sum + map[i][j],n);
            }
        }
    }
}


#京东##笔试题目#
全部评论
我晕,我第二题用的List<List<Integer>>,我说怎么总感觉不对,感觉第二题很模板类型的dp求最大值,估计有一半难度在输入数据上
点赞 回复
分享
发布于 2020-08-27 21:04
厉害,第一题我也是这个想法 然而没写出来
点赞 回复
分享
发布于 2020-08-27 21:23
滴滴
校招火热招聘中
官网直投
第一题我是另一个思路,ide对,但放上去死活不对
点赞 回复
分享
发布于 2020-08-27 21:26
我用三叉树做的
点赞 回复
分享
发布于 2020-08-28 11:00

相关推荐

投递腾讯云智研发等公司10个岗位
点赞 评论 收藏
转发
点赞 6 评论
分享
牛客网
牛客企业服务