【软件类】OPPO 2024届校招正式批笔试题-数据开发(C卷)

来自牛客题库,oppo真的很友好,还给了解析,然后我这个就是在解析的基础上发散了一些,用以记录,编程题最后一道小欧吃苹果没做。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

select r.room_id, r.room_name, count(distinct u.user_id) as user_count  -- 其中distinct避免同一个用户被计算两次(我一开始就忘了这个导致第三行结果是2)
from room_info_tb r
left join user_view_tb u on r.room_id = u.room_id 
where '23:00:00' <= u.in_time or ('23:00:00' <= u.out_time and u.out_time <= '23:59:59')  -- 这里别忘了时间要 ''
group by r.room_id, r.room_name  -- 两个一起,要不然会错
order by user_count desc, r.room_id;  -- 别忘了room_id升序排列,给我整的一开始1002在第一行

在这里插入图片描述

True True

记录一下浅拷贝:Python 深拷贝和浅拷贝详解,这张来自菜鸟教程的图很生动:

  • 直接赋值:其实就是对象的引用(别名)。
  • 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。还可以通过[:]切片(不能用于字典和集合完成浅拷贝)完成。
  • 深拷贝(deepcopy):copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

对于元组,元组是不可变的,使用 tuple() 或者切片操作符 ‘:’ 不会创建一份浅拷贝,相反它会返回一个指向相同元组的引用(字符串str()也是一样):

tuple1 = (1, 2, 3)
tuple2 = tuple(tuple1)  # 或者tuple2 = tuple1[:],结果也一样
print(tuple1 == tuple2)  # 仅判断元素是否相同,不在乎是否同一个对象
print(tuple1 is tuple2)  # 比较内存地址

>>> (1, 2, 3)
	True
	True  

这是因为判断的是元组,所以用 is 判断是时候才True,如果是列表、集合、字典等,浅拷贝重新分配了内存,所以 is 的结果会是False

在这里插入图片描述

输出None

如果字典里面嵌套有字典,无法通过 get() 直接获取值,程序会判断这个字典中没有键为’first’的元素,返回默认值None。如果想获取’first’后面的值,应该访问内部字典:

result = dict.get('num', {}).get('first')
print(result)

在这里插入图片描述
人话:当从总体中抽取样本而不是使用整个总体时,就会发生错误

在这里插入图片描述
在这里插入图片描述
2^4=16个,因为每一个布尔变量都有真假两种取值。

在这里插入图片描述
分类算法的学习策略是预测为训练样本最多的类(也就是不管其他,只要训练样本里面某个类别最多,那测试样本里面就预测为此类别)。

  • 2折交叉验证:将数据集分成两个相等大小的子集:A={T,T,T,F,F}, B={F,F,F,T,T},进行两次的分类器训练。在第一次中,一个子集作为训练集,另一个便作为测试集;在第二次训练中,则将训练集与测试集对换。
    A训练,则B全预测为T,错误率3/5。反之,2/5。综合来看,接近50%。
  • 留一法:每次留下一个样本作为测试集,其余9个样本作为训练集。那么不管测试集是T还是F,预测结果都会错误。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
子串是字符串中任意个连续的字符组成的序列。这包括空串(长度为0的子串)和字符串本身作为子串。所以是(1+7)*7/2=28 再加上一个空串,结果为29。

在这里插入图片描述
在这里插入图片描述
WPL = 34*2+16*3+9*4+4*5+7*5+28*2+31*2=325

复习一下哈夫曼树:带权路径长度最短的二叉树,也称为最优二叉树:
在这里插入图片描述
在这里插入图片描述
构造哈夫曼树的基准就是:权值越小,离根越远

在这里插入图片描述
在这里插入图片描述
这道题答案应该是:4, 5, 6, 1, 2, 3,就差一步就能排好序。了

关于排序看这里:排序算法(冒泡、插入、选择、快排、归并)原理动画及Python、Java实现

接下来一些Hadoop相关的题目就不放了,直接来代码题:
在这里插入图片描述

def rull(num):
    num[0][0], num[0][1], num[1][0], num[1][1] = (
        num[1][0],
        num[0][0],
        num[1][1],
        num[0][1],
    )


# def beauty(num):
#     if num[0][0] < num[0][1] and num[1][0] < num[1][1] and num[0][0] < num[1][0] and num[0][1] < num[1][1]:
#         print("Yes")
#         return
#     else:
#         rull(num)

t = int(input())
for _ in range(t):
    a, b, c, d = map(int, input().split())
    num = [[a, b], [c, d]]
    for i in range(4):  # 旋转三次
        if (
            num[0][0] < num[0][1]
            and num[1][0] < num[1][1]
            and num[0][0] < num[1][0]
            and num[0][1] < num[1][1]
        ):
            print("Yes")
            break
        else:
            rull(num)
            if i == 3:
                print("No")

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OPPO IC笔试题是一道由OPPO公司出题的考察应聘者电子工程知识和能力的笔试题目。根据题目要求,我将使用300字中文回答这道题目。 根据OPPO IC笔试题,题目要求是设计一种电源管理芯片。首先,电源管理芯片是一种用于管理和控制电力供应系统的集成电路。它可以将输入电压转换为恰当的输出电压,并提供电流稳定和电池充电功能。 为了设计这种电源管理芯片,首先需要明确设计的目标和要求。比如,芯片的输入电压范围、输出电压和电流要求、电池充电功能等。然后,进行电路设计,包括选择适当的元器件、搭建电路拓扑结构,以满足设计要求。 接下来,需要进行电路模拟和性能测试。使用电路仿真软件,对设计的电路进行模拟,验证其在不同工作条件下的性能。包括输入输出电压波形、电流稳定性、功耗以及保护功能等。 在模拟和测试过程中,需要关注电路的效率、温度、稳定性和安全性等因素。如果模拟和测试结果符合设计要求,就可以将其进一步制造成芯片原型。 在芯片原型制造完成后,需要进行实际测试和验证。使用测试设备和工具,验证电源管理芯片在实际使用中的性能和稳定性。 最后,完成设计文档和报告。记录整个设计和验证的过程,包括电路图、模拟结果、测试数据和验证报告等。并对设计中遇到的问题和解决方案进行总结。 总之,设计一种电源管理芯片需要进行目标确定、电路设计、模拟测试、制造验证和文档报告等过程。这道OPPO IC笔试题考察了应聘者的电子工程知识和设计能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值