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 浙江

相关推荐

不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

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