9.28 京东Java后端笔试题解
1. 猜数游戏,给q个提示,每个提示两个整数m,d,表示m
与k的差的绝对值不超过d,求最大k
思路:每个提示确定k的范围是[m-d,m+d],所有范围取交集
2. 给一个二维矩阵,每个矩阵上的值代表这个位置上叠放的小正方形(单个面积为1)数量,输出三视图面积。
思路:每行每列算最大值,求和
3. 给一条数轴n个点和数轴上m个传送装置(比如从1传送到10,传送装置不消耗时间),求1到n消耗的最少时间,n范围1e9 m范围1e4,
思路:考虑最短路dijk + 邻接表。 1. 传送装置u到v 2. 连接1、n和所有有装置的点(最多2e4)
点范围1e9,但实际最多只有2e4个,建邻接表的时候需要映射一下
#京东笔试#
与k的差的绝对值不超过d,求最大k
思路:每个提示确定k的范围是[m-d,m+d],所有范围取交集
2. 给一个二维矩阵,每个矩阵上的值代表这个位置上叠放的小正方形(单个面积为1)数量,输出三视图面积。
思路:每行每列算最大值,求和
3. 给一条数轴n个点和数轴上m个传送装置(比如从1传送到10,传送装置不消耗时间),求1到n消耗的最少时间,n范围1e9 m范围1e4,
思路:考虑最短路dijk + 邻接表。 1. 传送装置u到v 2. 连接1、n和所有有装置的点(最多2e4)
点范围1e9,但实际最多只有2e4个,建邻接表的时候需要映射一下
#京东笔试#
全部评论
佬,最后一题是怎么知道n最多2e4的呀,我数组建立的时候给n+1空间(int[] arr = new int[n+1]),过了80%的用例,然后空间直接爆了,想不到更优解。
相关推荐