OPPO后端笔试0313

20道单选+3道编程题

编程都是核心代码模式

第一题:给定六个数,求可以组成的最大的数;如[3,4] 最大数为43;

排序后遍历即可。

    public static int max(int[] num) {
        Arrays.sort(num);
        int sum = 0;
        for (int i = 0; i < num.length; i++) {
            sum += num[i] * Math.pow(10,i);
        }
        return sum;
    }

第二题:给定两个无序链表,合并成一个有序链表。

我是先合并再排序的。

第三题:去西藏玩,路旁给定景点数n,每次可以游玩1~2个景点,不可以回头,请问有多少种游玩方法

二维动态规划

public static long differentRoutes(int n){
        long routes = 0;
        long[][] states = new long[n/2 + 1][n+1];
        //初始化 第一行第一列均1
        for (int i = 0; i < n/2 + 1; i++) {
            states[i][0] = 1;
        }
        for (int j = 0; j < n + 1; j++) {
            states[0][j] = 1;
        }
        //routes[i,j]表示到达该点的方案数 = routes[i-1][j] + routes[i][j-1];
        for (int i = 1; i < n/2 + 1; i++) {
            for (int j = 1; j < n + 1; j++) {
                states[i][j] = states[i-1][j] + states[i][j-1];
                if(states[i][j] >= n) {
                    break;//后面就不用算了
                }
            }
        }
        int j = n;
        for (int i = 0; i < n/2 + 1; i++) {
            //倒着查比较快
            while (2*i + j != n) {
                j --;
            }
            routes += states[i][j];
        }
        return routes;
    }
}

#OPPO笔试##OPPO#
全部评论
第三题不是一位动态规划就解决了吗?这不就是爬楼梯吗
1 回复 分享
发布于 2023-03-26 11:36 浙江
第三题好像是斐波那契?
点赞 回复 分享
发布于 2023-03-19 11:34 陕西
日常实习还是暑假实习?
点赞 回复 分享
发布于 2023-03-23 15:44 广东

相关推荐

01-23 14:54
同济大学 Java
热爱敲代码的程序媛:给你提几点【专业技能】这个模块里面可优化的地方:1.【具备JVM调优经验】可以去b站上搜一下JVM调优的视频,估计一两个小时凭你的学习能力就能掌握JVM调优的实践方面的技能。2.【MySql优化】MySql这一栏,你去b站或者找个博客看看MySql优化,学一下,如果你本身比较熟悉MySql语句的话,那基本半天时间凭你的学习能力MySql语句优化方面的技能你也能掌握个差不多。以上1,2两点主要是因为我看你专业技能大部分都说的是偏理论,没有写应用。再就是最后,你结合你的项目,想一想你的项目中哪些sql语句是可以用MySql优化的,到时候你面试的时候也好结合着说一下。
点赞 评论 收藏
分享
评论
1
14
分享

创作者周榜

更多
牛客网
牛客企业服务