小米 秋招 笔试
1.算法:给定一个宽度为n的无限高游戏界面,初始每列已有一定高度的方块(用数组表示),然后依次下落一系列特定形状的俄罗斯方块(每个方块由若干格子组成),要求模拟下落过程(方块会落到底部或已有方块上),并最终输出游戏界面各列的新高度。
思路:对于每个下落方块,根据其形状(需考虑旋转和平移)在初始高度数组上尝试放置:从顶部向下扫描,检查方块底部与当前界面是否碰撞(即方块所占格子的下方是否已有方块或超出底部),找到最低的合法位置后更新对应列的高度(取原高度与方块放置后新高度的最大值),依次处理所有方块即可得到最终各列高度。
2.算法:给定n艘船的耐久度数组a和攻击次数k,海盗攻击顺序为左右交替(先左端、再右端、再左端第二艘、右端第二艘,以此类推),每次攻击减少目标船1点耐久,求攻击结束后耐久值非正的船的数量。
思路:
由于k可能很大,直接模拟每次攻击会超时。通过计算完整攻击轮数(每轮左右各一次)和剩余攻击次数,可确定每艘船实际被攻击的次数:左侧船主要受左端攻击,右侧船主要受右端攻击。遍历每艘船,根据其位置计算所受攻击次数(左侧第i艘船被左端攻击次数为轮数加可能的额外左攻击),若耐久值小于等于攻击次数则被击沉,统计总数即可。
#秋招笔面试记录##秋招笔试记录##秋招投递记录##大厂面试问八股多还是项目多?##业务面应该做哪些准备##小米##牛客AI配图神器#
思路:对于每个下落方块,根据其形状(需考虑旋转和平移)在初始高度数组上尝试放置:从顶部向下扫描,检查方块底部与当前界面是否碰撞(即方块所占格子的下方是否已有方块或超出底部),找到最低的合法位置后更新对应列的高度(取原高度与方块放置后新高度的最大值),依次处理所有方块即可得到最终各列高度。
2.算法:给定n艘船的耐久度数组a和攻击次数k,海盗攻击顺序为左右交替(先左端、再右端、再左端第二艘、右端第二艘,以此类推),每次攻击减少目标船1点耐久,求攻击结束后耐久值非正的船的数量。
思路:
由于k可能很大,直接模拟每次攻击会超时。通过计算完整攻击轮数(每轮左右各一次)和剩余攻击次数,可确定每艘船实际被攻击的次数:左侧船主要受左端攻击,右侧船主要受右端攻击。遍历每艘船,根据其位置计算所受攻击次数(左侧第i艘船被左端攻击次数为轮数加可能的额外左攻击),若耐久值小于等于攻击次数则被击沉,统计总数即可。
#秋招笔面试记录##秋招笔试记录##秋招投递记录##大厂面试问八股多还是项目多?##业务面应该做哪些准备##小米##牛客AI配图神器#
全部评论
佬不是25的嘛
相关推荐
查看7道真题和解析 点赞 评论 收藏
分享
03-05 13:31
郑州轻工业大学 Java
书海为家:实习是成为大厂正式员工很好的敲门砖,看您的简历中有一段实习经历,挺好的。我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己实习时做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。 点赞 评论 收藏
分享
03-02 08:18
集美大学 Java 点赞 评论 收藏
分享