字节夏令营在线笔试题目

三道选择题
1.cos(nx)可以写作若干ancos(x)^n相加的形式,求cos(2048x)的a0
取x = pi/2 于是cos(x) = 0
于是有 a0 = cos(2048
pi/2) =cos(512*2pi)=1

2.平衡二叉树 依次加入3, 8, 9后的状态
在这里插入图片描述
在这里插入图片描述
3. 一个分页系统,不会
关于FIFO(页面淘汰算法)和LRU(最近最少使用算法)
二、一道多选题
求矩阵特征值
-1 1 0
-4 3 0
1 0 2
答案是1与2

三、一道填空题,有两个玻璃球,在一栋N层建筑中,找到最小的不会被摔破的楼层,所需要尝试的次数。
例如N=2时需要2
问N=8时需要多少次

四、四道算法题

  1. N个边,N<10000 从中可以构成最多多少个三角形? 边不可以重复使用
    没啥好的思路

  2. 每天固定生产M份吃的,每天额外生产一份所需额外成本是c1。可以把当天多余的保存下来,每份每天保存所需额外成本是c2。 但是最多保存t天,因为会过期。 现在给定d天的需求列表,给出最低额外成本。
    思路:
    用一个长度为t的列表rest记录前t天的剩余情况
    遍历每天的需求,
    A:如果当天需求小于M,则将当天剩余加入到rest中去,如果rest长度超过了t,则rest.pop(0)把t天前的那些库存丢掉。 (#注意,rest只是代表可以进行的储存,但是这些储存可能不会被用掉,所以这里是一个虚拟的概念,我们并不修改cost,直到我们真正用到库存时,才修改rest.)
    B:如果当天需求大于M,则我们需要一些补充,有两种方案,利用库存或者是当天额外生产,我们需要比较这两种方式的成本。 前i天的库存的单位成本是ic2 当ic2 < c1时我们用库存,否则当天额外生产。 因此我们遍历rest[-1] rest[-2] … 如果还不能满足要求,我们额外生产所需。在此过程中更新cost。

m=5
c1=3
c2=1
t=2
needs=[1,1,2,4,10]
rest = []
cost = 0
for a in needs:
    if a <= m:
        rest.append(m-a)
        if len(rest) > t:
            rest.pop(0)
    else:
        cha = a - m
        s = 0
        while cha > 0 and s < len(rest):
            index = len(rest)-1-s
            if c2*(s+1) >= c1:
                break
            val = min(rest[index
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值