奇安信 C++服务端暑期实习笔试

单选20道、多选10道,主要涉及C++基础知识、网络、操作系统以及数据库(基础知识部分感觉像408考试。。。对于我这种转码选手而言有好多不会)

编程题两道:
1、给定一张画布上有100*100个白色格子,在画布上画框,遇到白色会变黑,遇到黑子会变白,输入为一系列的框的组合,求最后白色格子总数。
做法:初始化为1,遍历每个框然后取反,求最后1的个数即可

2、给定N个手机的电量,每1%电量可玩一分钟,5个人5排使用手机问最多能5排多长时间。
做法:一开始想的是优先队列,弹5个出来求最小值,然后每个都减去该最小值再放回去(若等于0不放回),但是只过了50%用例,后续发现不能一次性全用完所有电,故每次弹出来5个只用一分钟就放回去。
PS:应该有更好的解法,但是牛客的用例真的太水了,这居然没超时

不知道能不能给个面试机会
全部评论
我第二题用的贪心和小根堆做的,也是过了50。不知道为啥。具体思路是先判断手机个数是否小于5,如果小于5返回0。然后给电池从大到小排序,当队列数小于5时,直接插,当队列数等于5时,取出队头,加上当前的电量,然后插入队列。最后返回队头。各位大佬看看这个思路有没有什么问题啊
1 回复 分享
发布于 2023-05-14 20:36 上海
画布那个题输入的参数是什么意思啊
点赞 回复 分享
发布于 2023-05-14 20:31 辽宁
请问为什么每次只能用一分钟不能全用完呀
点赞 回复 分享
发布于 2023-05-14 20:38 河南
土木好哥哥请问你投简历用的啥项目啊
点赞 回复 分享
发布于 2023-05-15 17:24 辽宁

相关推荐

4 7 评论
分享
牛客网
牛客企业服务