携程笔试
这算法,真的做不了一点!四道加一起凑不够一道,秋招这么多笔试最难的一次,真的吐了!
全部评论
借贴发,自己错误发不了
100 82 100 100
第一题
小顶堆,我是用大顶堆存负数,如果堆顶相同就换次小的,最后单独判断最后一位,前面可以保证不想等,如果最后一位相同就交换,交换后肯定不相等
第二题
相当于统计频率,s得频率数组x,t得频率数组y,大小ny,相当于把x分成ny份,每份跟y[i]相等,我拿贪心骗了82,dfs超时,这个如果别的大佬有思路欢迎讨论
第三题
暴力+剪枝
枚举左上角右下角,且矩阵大小不能超过26,统计频率即可
最后写的,本来感觉要二维前缀和,没时间就暴力骗分,没想到过了
第四题
数学+dp
被75整除,代表被25且被3整除
被25整除代表后两位是00 25 50 75
被3整除代表数位和模3等于0
特殊情况数过小k过小的先特判
之后就是三维dp
dp[i][j][x]代表第i位,修改j次,数位和模3等于x的方案数,i范围[0,n-1],j范围[0,k],x范围[0,2]
技巧,可以先确定后两位,做法是把数翻转,先确定前两位,也就是00 52 05 75,然后最后一位不能取0,过程中就是当前数可以变可以不变
最后答案就是四种被25整除情况下,累加dp[n-1][k][0]
太难了一个不会
16 90 25 0
16 90 0 5 ,大寄特寄
100 90 90 15(骗)
太真实了,做的我当场哭泣
测开岗位都哭了,笔试结束还特地去招聘网页看了一下是不是投成开发岗位了。。。(16 90 0 0)想死
我的状态:
。啪一下,交卷,舒服多了
第二题很多人被卡90是少了这种情况。str1 和 str2 都具有26种字母且不相等时,此时str1每次变化都会导致和其他字母一样,所以一定不能转化。
100 100 81 100
50,90,0,10。寄!
100 90 0 15(骗分)
100 90 0 20 就不该做这玩意
3,90,25,20 寄!
20 90 20 0 怀疑人生
提前20分交卷了,浪费时间,纯纯不想招人
一道不会
真写不来,不是开玩笑那种16 90 25 0
做出来两道,分享下思路:
字符串变化的那道题,首先遍历s,把每个字母所在的下标存进对应的数组,比如 'a':[0,1,3]。然后遍历这些数组,要求在这些下标中字符串t的字母也是相同。但要考虑一个特殊情况,这也是为什么很多 90% 的。那就是如果 t 出现了 26 个字母时,只能要求 s==t,因为没有多余的字母来进行中间的变化。
逆序数的那个,遍历 1 到 n,直接按顺序往结果中填数,如果遇到相等的,直接填后面那位,就能保证最小且不重复。然后把当前的数填到下一位,也能保证后面这位最小且不重复。但要特殊处理最后两位,因为可能会重复。
希望大佬提示下,那两道 无重复网格 和 75 的倍数 的思路。
第一题有思路吗?完全想不明白。
相关推荐
点赞 评论 收藏
分享