途虎养车0920 Java开发笔试
单选题45分15道,多选题忘了,算法题3道,总时间1.5h
单选和多选相对比较简单,没有智力题没有太多要动笔的题。
算法题3道算中等吧,可惜功力还是不够,没有更多时间让我调整跑通所有测试用例。
算法1:
给定一个表示各点权重的矩阵,如[0,0]处值为1表示权重为1。从左上角出发,只能向下或向右走,求到达右下角的最小权重之和。dfs,注意下某个方向越界时的处理就行。
算法2:
给5种汽车服务,分别有对应的价格和耗费时间,每个服务只能用一次。给定一个费用B和一个时间T,求不超过B T的情况下能使用哪些服务可以 让总价格最大。我是直接按性价比(价格/耗时)排序,优先使用性价比高的服务,相同性价比应该价格高优先。
算法3:
给一个n行2列的矩阵,表示n个城市。矩阵里存放每个城市的二维坐标,比如0,0 0,1 2,1这种。横坐标相同或者纵坐标相同意味着这两个城市可以连通,如果能间接连通也算连通。所有城市如果是分成x块不连通的区块,就要建立x座工厂。求给定的坐标需要建立几座工厂。我用了并查集,双循环遍历所有城市,把能连通的划分到一组,最后直接读并查集中的连通分量个数即可。只通过了66%的用例提示超时,估计还是双循环问题。
单选和多选相对比较简单,没有智力题没有太多要动笔的题。
算法题3道算中等吧,可惜功力还是不够,没有更多时间让我调整跑通所有测试用例。
算法1:
给定一个表示各点权重的矩阵,如[0,0]处值为1表示权重为1。从左上角出发,只能向下或向右走,求到达右下角的最小权重之和。dfs,注意下某个方向越界时的处理就行。
算法2:
给5种汽车服务,分别有对应的价格和耗费时间,每个服务只能用一次。给定一个费用B和一个时间T,求不超过B T的情况下能使用哪些服务可以 让总价格最大。我是直接按性价比(价格/耗时)排序,优先使用性价比高的服务,相同性价比应该价格高优先。
算法3:
给一个n行2列的矩阵,表示n个城市。矩阵里存放每个城市的二维坐标,比如0,0 0,1 2,1这种。横坐标相同或者纵坐标相同意味着这两个城市可以连通,如果能间接连通也算连通。所有城市如果是分成x块不连通的区块,就要建立x座工厂。求给定的坐标需要建立几座工厂。我用了并查集,双循环遍历所有城市,把能连通的划分到一组,最后直接读并查集中的连通分量个数即可。只通过了66%的用例提示超时,估计还是双循环问题。
全部评论
不能用双循环,会tle。可以额外记录每行每列第一个遍历到的节点,连接当前节点和同行/同列节点,这样一个for就能做出来了。
算法1是我昨天面试的手撕题
感觉都还行,dp、01背包、并查集
相关推荐
10-22 17:13
中南大学 技术美术 点赞 评论 收藏
分享