拼多多暑期实习笔试
服务端开发,就四道编程题。
第一道,组合起来求字符串的最小字典序,模拟。
第二道,给出m个要求,a要比b工资高,拓扑排序,赛时不会写。
第三道,每一次操作都可以改变数组里的一个数,要让数组变成严格单调递增,求最小的操作次数。一开始想的是最大上升子序列,后来发现,变成的数必须是整数,假如5和6直接存在一个别的,那就不能变化了。思路错误
第四道,每次操作,给出一个x一个数组的数,当数组的数大于x,就互换,要求最小操作次数让数组变成递增数组,不会做。#牛客AI配图神器#
第一道,组合起来求字符串的最小字典序,模拟。
第二道,给出m个要求,a要比b工资高,拓扑排序,赛时不会写。
第三道,每一次操作都可以改变数组里的一个数,要让数组变成严格单调递增,求最小的操作次数。一开始想的是最大上升子序列,后来发现,变成的数必须是整数,假如5和6直接存在一个别的,那就不能变化了。思路错误
第四道,每次操作,给出一个x一个数组的数,当数组的数大于x,就互换,要求最小操作次数让数组变成递增数组,不会做。#牛客AI配图神器#
全部评论
第二题试了好多用例全过了,一提交通过0%
第三题就是最长递增子序列,把原题的判断条件从 nums[i] > nums[j] 改成 nums[i] >= nums[j]+j-i 就可以过。但是O(n^2)的实现只能过20%,只有O(nlogn)才能过100%,可惜实在忘了O(nlogn)怎么写

第三题,可以先把a[i]每个数进行操作a[i] = a[i] - i,然后判断最长递增子列(可以相等)的长度就行
忍耐王
求问第一题细节
忍耐王
接好运
mark第三题思路
A出1,4第二题拓扑排序有思路,但是编码编不动。第三题感觉不难但是就是A不动
为什么我第一道题一直只能过10%

只做了1.1道
第三道感觉可以用带限制条件的最长递增子序列算法(两个数的差值必须不小于它们下标的距离才判定为递增),但我没改出来
mark第三题思路
第二题要重构图结构,使其变为树,然后BFS
第三题就是排序问题,测试正确,不知道为什么提交通过为0?给我郁闷了20分钟
第三题我把读入的每个数减去自己的下标之后再做最大上升子序列,大于等于就可以满足条件,比如5和6之间有一个2,就变为了5,1,4,可惜还是没做出来
忍耐王
第二题好难啊

求问第一题细节
mark第三题思路
接好运
相关推荐
点赞 评论 收藏
分享
04-23 16:24
中国科学院大学 C++ 点赞 评论 收藏
分享

点赞 评论 收藏
分享

点赞 评论 收藏
分享