记:百度秋招20210907笔试题

百度-正式批

笔试-0907

选择题占60分,编程题占40分

选择题

基本是Java、计算机网络、操作系统、数据结构类的题目,考研408,emmmm

  1. list.stream().map(d->1).reduce(0,(a,b)->a+b):本题关于Java1.8的新特性stream的功能进行考察,stream是用来管理集合数据的,可以看作高级的迭代器;map用来归类;reduce用来计算值。本句代码表示计算流中元素个数,换成count()也可计数。
  2. 计网:GBN协议,发送0-10帧,计时器超时,发送方只收到0、2、4,问现在需要重发第几帧?
  3. OS:分页存储系统,一次访存120ns,一次访问快表TLB30ns,命中率70%,计算有效访问时间?
    本题需要明白,查询的流程,先去快表查(耗时30ns),如果命中,访存得到数据;否则查页表得到存储的地址(访存一次,耗时120ns),更新快表,去相应地址拿数据(访存一次,耗时120ns);否则,如果内存中没有,就需要IO中断,访问外存。
  4. OS:三个进程ABC,分别需要执行计算操作、IO操作、计算操作,三个阶段需要的时间:A:60-50-10,B:100-60-30,C:80-10-40,问并行执行快了多少时间?
  5. Huffman编码的带权路径长度MPL的计算,给了一个序列{4,2,1,9,7,10}。参考
  6. JVM:Eden的垃圾占新生区的75%,好像是问新生区的分区比例?8:1:1
  7. 二分查找的次数
  8. Java:深拷贝和浅拷贝的知识考察。参考
  9. 数据结构:平衡二叉树的深度是4,最少多少节点?7个节点

代码题

  1. 送分题:给定一个二维矩阵,然后每一个位置需要横向纵向复制K份,输出扩大之后的新矩阵。

    package baidu;
    
    import java.util.Scanner;
    
    /**
     * 给定图像的所有像素点0/1,现在要放大图像
     */
    public class solution {
         
        public static void main(String[] args) {
         
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt(), k = sc.nextInt();
            int[][] rawMap = new int[n][n];
            int[][] retMap = new int[n * k][n * k];
            for (int i = 0; i < n; i++) {
         
                for (int j = 0; j < n; j++) {
         
                    rawMap[i][j] = sc.nextInt();
                }
            }
            for (int i = 0; i < n * k; i++) {
         
                for (int j = 0; j < n * k; j++) {
         
                    retMap[i][j] = rawMap[i / k][j / k];
                    System.out.print(retMap[i][j] + " ");
                }
                System.out.println();
            }
        }
    }
    
    3 2
    1 2 3
    4 5 6
    7 8 9
    
    1 1 2 2 3 3 
    1 1 2 2 3 3 
    4 4 5 5 6 6 
    4 4 5 5 6 6 
    7 7 8 8 9 9 
    7 7 8 8 9 9 
    
  2. 数字规整问题,定义了一个“完美数”的概念,完美数中每一位都属于{1,2,3},需要输出最大的不大于n的完美数。需要考虑的问题是大整数问题,题目给定的n的范围上限是10^18。

    思路:可以通过字符串来接收键盘输入的内容,然后根据数字的长度选择用int型还是BigInteger类型,思路一致。用一个新数字存储修改后的结果,从个位数开始判断,如果当前数字大于3,那么将该数字直接置为3,存入新数字,num/=10;如果当前数字小于1,即0,那么将整个数字减1,进入下一层循环;如果当前数字在{1,2,3}之间,存入新数字,num/=10。【该思路超时】

    package baidu;
    
    import java.math.BigInteger;
    import java.util.HashMap;
    import java.util.</
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值