导航菜单
首页 >  pat往年真题  > pat甲级考试

pat甲级考试

记一次pat甲级考试准备第一题第二题第三题第四题总结

准备

一两个月前,报名了pat甲级考试,其实一直想参加这个考试,一是为考研,一是为了找工作。然后就报名了acwing的pat甲级辅导课。不过没来得及看。因为一直在刷acwing的算法基础课题目。比较遗憾的是,这次考试只考了86分,最后一道30分的题目只拿了16分,一是时间不够,一是确实不会。

第一题

第一题是个模拟题,让你不断从数组中删除下标是平方数,再删除下标是素数的位置,删除后让数组元素靠到一起继续前面的步骤,直到数组中剩最后一个元素。这个其实把素数筛法写出来,剩下的就没问题了。

第二题

第二题是LRU-K 和之前LRU不同的是,这个有两个队列,一个是普通队列,一个是缓存队列,当普通队列中的数字被重复查询k次时,会被添加到缓存队列。队列满时要排除最久未访问的,总之就是hash表加双链表对LRU做一些改进。这个题耽误了不少时间,主要时一开始用的list,后面写着不太顺又自己实现了个双链表,然后又debug了很久。导致最后一题没有时间了。

第三题

这个题目最简单,给你一个图,让你输出这个图里面入度大于出度的点,应该是个签到题

第四题

这道题让你判断一个树是不是心形树,满足,最下面的叶子点弯折方式像心形,如果像输出yes否则输出no, 这道题当时已经不太有时间了,而且它的树不是直接给你的,是给你中序遍历和后续遍历,让你自己build一个树,然后最后还要输出这个树边缘的那些点。属实是任务有点大。 我没有判断是不是心形,直接全部输出yes,再输出边缘节点。最后骗了16分。当时还有十几秒就结束了。其实后面想想,如果时间够,随机函数输出yes no 只要一直提交是有可能骗成满分的。真的有点悲催了。

总结

这是我第一次参加pat甲级比赛。准备过程略显仓促,感觉pat还是特别重视基础和熟练度,我的每道题都不是直接拿上就做出来的,而是思考了一会儿,当时素数筛法都快忘了,LRU之前在github上刷的印象也很浅了,就记得是hash表+双链表,但是不知道怎么用stl里面的list配合hash表,不得不实现双链表,浪费了不少时间。总的来说,自己的算法熟练度还是不足,考试经验不足,还是有待练习。看了一下pat企业推荐里面的要求,如果这次考90分以上就好多了,太可惜了。

相关推荐: