华为OD机考

大家好啊,刚刚考完华为OD的机试,有个问题想问一下大家,就是每个题目是只能提交一次呢,还是可以提交多次的呢?不包括自测的。比如我第二道题,第一次提交,通过率是50,第二次提交是100,那最后算成绩是算50还是100呢?

题目1.给定货车能装的货物总量,给定n个货物的重量,求货车能装的货物的最大个数。 ex. 20   2 4 5 8 11
一开始太紧张想叉了,想着去用动态规划,其实只要把货物的重量从小到大排序,然后相加看会不会超过货车限制即可,因为是求个数,不是求总重量。
题目2:打牌,求最长的同花顺问题。
我是这么做的,开一个数组,把所有的牌的个数统计起来,J对应索引11,Q对应索引12,2和大小王放前面即可,因为他们不会构成同花顺,然后遍历这个数组,从3开始遍历,找到不含4的最长的串,并且长度大于等于5,并且要大于等于之前统计的最大长度,因为题目意思是要覆盖,然后按照这个长度把数组的索引加入到SB中,注意,如果是11,12,13,14,要转化回JQKA
题目3:构造一块内存,内存长度100,命令有请求一段内存和释放一段内存,以及要求的长度。
我是这么做的:开一个100大小的数组,请求内存时,从数组开头开始遍历,找到一段长度是要求的长度的并且全是0的一段,把它的值设为一个不为0的值,这个值在后面释放内存的时候要用到,比如 1111100000,这是申请5个大小的内存,如果申请的空间大小为0,输出error
释放内存时,给的数字是释放内存的首地址。这时候就要看,如果这个首地址的值是0,说明无需释放,输出error, 然后再看,这个内存地址的前面的那个值和这个值是不是相等,或者这个内存地址的位置是0, 如果相等的话,说明这个内存地址的首地址是在一段连续内存的中间,就不允许释放,比如 1111100000,首地址为3,这时候就不能释放,输出error。
还有一种要考虑,在释放时,怎么才能释放这个首地址所在的内存,而不会释放后面的内存呢,这个时候我们要想到前面申请内存的时候,给这个内存空间赋值,赋值要赋不一样的值,否则谁知道这个位置属于谁呢? 但是怎么赋不一样的值呢,我的做法是,再开一个100长度 的数组,这个数组用来标记的,比如第一次申请内存,遍历这个标记数组,找到第一个为0 的索引,然后在内存数组中进行标记,比如111000,然后第二次申请内存时,再遍历标记数组,这时候,第一个为0的索引是1,就在内存数组中进行标记,比如 111222,这样,在释放的时候,就可以很明确的释放一段相同的内存,释放的时候,不要忘了,要把对应的标记给还原成0,否则后面再申请内存的时候标记就会出问题。

答题思路仅供参考,欢迎交流探讨,共勉,加油吧
#华为##华为od##华为机试##华为笔试##华为招聘#
全部评论
机试可以切屏吗?比如用idle写完 直接粘贴到牛客
1 回复 分享
发布于 2022-06-28 13:25
按照最新的提交计算分数
2 回复 分享
发布于 2022-06-27 21:53
这。。。我都不知道啥叫同花顺😂
1 回复 分享
发布于 2023-07-30 08:13 陕西
有意向od,上海、杭州、北京岗位联系我哦~
点赞 回复 分享
发布于 2022-06-28 11:11
考试千万别作弊,上海可以找我,神仙部门
点赞 回复 分享
发布于 2022-07-01 11:29
看机会的小伙伴可以考虑下 华为 OD哦 (研发&测试岗位)  1、普遍14薪,优秀者更高,2-4个月年终奖;  2、办公环境舒适   3、周末双休,周末安排加班双倍薪资    4、全额六险一金   5、工作地:西安、杭州、成都、东莞等 华为 研究所   6、入职发放年假   7、每年组织旅游、团建丰富、节日福利多   8、最重要的是我们部门hc多多,不会因为hc入不了 9、异地入职可报销机票高铁票  10、组内小哥哥,小姐姐人美心善,有老人一对一带,别担心自己不会,我们就是这么的给力啊~ 期待你们私信我,给你们安排的妥妥的,不用担心卡在哪里,我都会给你们指导的,相信我~奥利给!(中国人不骗中国人)  华为 推崇内推文化,每年新同学入职通过内推比重占六七八成,内推成功率比自投、猎头都要高  有整理好的 刷题 攻略可提供复习方向和复习建议!欢迎关注我私聊!
点赞 回复 分享
发布于 2022-07-08 11:16
借楼,华为OD招聘,地域:深圳、东莞、北京、上海、西安、成都、南京、苏州、杭州均可安排 https://www.nowcoder.com/jobs/fulltime/detail?jobId=63870
点赞 回复 分享
发布于 2022-07-11 22:47
借楼,华为OD招聘,地域:深圳、成都、杭州
点赞 回复 分享
发布于 2022-08-16 16:58

相关推荐

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