去哪儿 0906 笔试

#去哪儿旅行秋招# 单选多选难度不高
三道编程 0.6 0.8 0.2
不是很满意

第一道 60% 题目描述:给定int[] nums,打乱顺序使连接后的字典序排列最小
                   思路:比较用的是优先级队列,用一个列表不断对比插入
                   但是超时了,佬们是怎么答的
第二道 80% 题目描述:给定int[] a、int[] b、一个数字m,问满足下列规则时最少选前几个,即求最小的x
选取规则是,a和b各自选取前x个 使最大和最大相乘 次大和次大相乘 相乘的结果需要满足>=m
思路:二分选择合适的分割点idx,两个优先级队列保存[0, idx],依次弹出相乘,判断是否>=m
                   依旧超时
第三题 20% 题目描述:问的是一个字符串的最大的分割次数,要求分割后每段都需要 其某个字串至少重复2次
                   思路:boolean[][] dp[i][j]记录[i, j]是否是伪周期串+回溯
                             ①递推时,如果长度为奇数,需要满足所有字符相等;
                                              如果长度为偶数,需要满足 周围字符的重复次数是偶数 && dp[ii][jj]==true
                             ②回溯进行分割,找到了一个合适的k就可以立即返回
                   其实我觉得思路挺清晰的,然而结果就是很低

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务