主要讨论算法题。怀疑是不是顺序放反了,第二题简单的厉害,也算是对上周showmebug事件的补偿?
第一题:3d模型文件中存储了三角形面片数据,他由“顶点数组”和“索引数组”两部分组成。例如顶点数组[V{x0,y0,z0},V{x1,y1,z1},V{x2,y2,z2}….]每个元素是1个顶点坐标。 索引数组[(0,1,2),(0,2,3),(4,5,6),…]每个元素是1个三角形的三个顶点的index,在顶点数组的index。其中有1条公共边的2个三角形成为相连,例如(0,1,2)和(0,2,3),求解最大的三角形相连的集合的问题。要求,输入:索引数组和数组的大小,用逗号”,”隔开。输出最大三角形相连的集合的size。额外说明:索引数组中没有重复的、以及非法的三角形。输入用例:[[0,1,2],[0,2,3],[4,5,6],[2,3,4]],4输出3.
思路:比较明显的DFS题。DFS遍历所有相连的三角形,并且记录过程中最大相连集合的大小。
第二题:一个游戏有个玩法会每小时产出相应的资源,资源数量>=0,玩家可以通过积累该资源换取一定的奖励。给定一个一维数组res,其中res[i]表示从开始到i小时中积累的资源总量。现在给定领取奖励的所需要的资源总量target,请计算可以领取该奖励的最早时间,如果无法领取则输出-1.例子:输入[1,4,6,6,11],5输出3.
强制要求C++、C或者C#完成。刚开始理解错了,用前缀树做完了才发现不对。遍历找大于等于target的index就完事了
选择填空相对常规,讨论的空间不大