笔试记录 3.12

3.12

4题基础+1树


1、一个数字要么11倍数要么至少有2个1

简单,ac
先%11=0,若是则符合,若不是再看条件2
常规%、/两个操作结合,按位找1,计数达到2则符合


2、一组1、-1组成的数列,找连续子序列积为1的序列个数

节约时间用了最暴力的穷举遍历,过80%,应该是因为暴力超时?
可以用动态规划


3、n道菜,m个客人,每个客人要求2道菜,尽量满足更多的客人。

分支限界,ac
disk[1,2,…,n]:0-未分配;1-已分配(为了方便用输入序号定位下标,直接从1开始)
ask[0,1,…,m-1][2]:客人要求菜品
约束条件:客人要求的菜有冲突
限界条件:已分配客人数+余下所有客人数 <= 已得方案的可满足客人总数


4、炸弹游戏,初始在房间1,n个房间,m次爆炸(保证第一次不炸1号房),每次随机炸一个,房间之间跳跃损耗1能量,求无伤通关消耗的最低能量

用了分支限界,但不知哪里没考虑全,只过了55%
room[1,2,…,n]:房间(为了方便用输入序号定位下标,直接从1开始)
boom[0,1,…,m-1]:爆炸所在房间号
约束条件:下一跳房间会被炸
限界条件:下一跳累计步数 >= 已得方案总步数


5、另外一题:
依次输入树的节点、子节点信息,节点分为两种:黑、白
若一个黑节点的所有子节点均为白,则为好节点;
若一个白节点的子节点至少一个为黑节点,则为好节点。
求黑、白好节点个数。

过 10%,有点怀疑是不是对题目意思理解错了
按二叉树进行的搭建,后根遍历计算子树里的黑色节点数blackCount。
若某节点为黑+子树中blackCount = 0,则黑色好节点 + 1;
若某节点为白+子树中blackCount > 0,则白色好节点 + 1;
遍历完输出结果。

由于时间关系,过了10%之后回头看前面的题
后来想想会不会不是二叉树,而且题目计算子节点中的黑白情况,是不是不需要看整棵子树。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值