第一题一直时间复杂度高,后面想起来可能要用小根堆还是太菜了#美团笔试#
全部评论
第一题python过的。 a数组直接排序获得b数组,然后遍历前m个,字典存每个数要删几次(dict[b[i]]--)。然后ans="",遍历a,若dict[a[i]]<0就跳过,否则ans+=f"{a[i]} ",。然后输出ans。
点赞 回复 分享
发布于 04-18 12:43 陕西
我这题测试样例是对的,但判题就是过不去;结束后查了查,可能是因为多了个空格....
点赞 回复 分享
发布于 04-18 12:15 陕西
我做出1,3题。 第二题python不太熟悉。 第4题有 O(nlogN) 的思路,但是没时间写了没写完.... 拿unordered_map<int, deque<int>> ansMap 存一下第一个序列的数,后边存该数字后最长的序列。 unordered_map<int, int> valToIndexMap 存第二个序列值和索引,输入值就得到索引。 从后往前遍历第一个序列,作为头节点。 然后从头节点开始往后遍历下一个节点,只要b序列相同元素的索引比 ansMap[i] 尾部的索引大,就存进结果序列ansMap。 遍历完就已经找到了最长的序列,但是找字典序最大的两行排序没写完...a 思路就是如果比较发现一样长,就拿这个元素跟第一个序列对应索引的值比,删掉小的推入大的。
点赞 回复 分享
发布于 04-18 12:13 浙江
确实,搞了快半个小时才想起来用优先队列,第一题做完就没时间了
点赞 回复 分享
发布于 04-18 11:59 江苏
你硬排序其实也是行的,那题不卡排序复杂度,卡的是根据你查出来的下标去删除时的复杂度,O(常数k)都会卡掉40%,真的气笑了
点赞 回复 分享
发布于 04-18 11:59 黑龙江

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务