23号荣耀笔试 全A

第一题老鹰捉小鸡 用list去处理,简单
第二题最靠后的最长降序,暴力求解,三个数组,
    第一个list记录数据,
    第二个arrLen[index]记录list中下标index数据对应的最长降序长度,
    第三个arrIndex[index]记录list中下标index数据对应的最长降序长度前一个数据下标。然后两个循环,外循环从第二个数据到最后一个数据(i= 1; i  < len; i++),内循环从i往前遍历(j = i - 1; j > -1; j--),判断条件list.get(i) < list.get(j) &amp;&amp; arrLen[j] + 1 > arrLen[i] ,执行操作arrlen[i] = arrLen[j] + 1; arrIndex[i] = j;
    最后的到最大长度在arrLen数组中,最大长度降序的索引记录在arrIndex中,遍历即可。(细节不赘述)
第三题 判断手中牌最大的权值。
    数组arr记录各牌个数,长度为14,处理2~10、J\Q\k\A\大小王,映射到下标为0~13的arr数组中。
    先判断arr[13] == 2 (大小王 权值5)
    关键在五张连续牌会破坏 对子,三张,四张情况。
    什么时候能取连续五张牌? 经判断 五张连续牌的个数,大于1的不超过两个,此时能取连续牌,并将对应牌个数减一。
    剩下的一次遍历arr 加上对子、三张、四张的权重。
全部评论
第二题应该可以简单点的吧。按顺序把读数字记录到数组A中,发现不满足递减了就开始往数组B中记录。之后每次发现不满足递减就把短的数组清空继续记录就行了。
点赞 回复 分享
发布于 2023-09-23 20:56 江苏
请问一下,第三题如果大于1的正好是两个,这个连续取牌不一定会分数更高吧,两个对子不就4分>3分了
点赞 回复 分享
发布于 2023-09-23 20:18 浙江

相关推荐

不要停下啊:大二打开牛客,你有机会开卷了,卷起来,去找课程学习,在牛客上看看大家面试笔试都需要会什么,岗位有什么需求就去学什么,努力的人就一定会有收获,这句话从来都经得起考验,像我现在大三了啥也不会,被迫强行考研,炼狱难度开局,啥也不会,找工作没希望了,考研有丝丝机会
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务