腾讯笔试,大佬们有高效ac的代码供我膜拜以下!

大家腾讯笔试做的咋样?腾讯的编程题看似简单但是暗藏杀机,一跑就超时,有人有高效实现的代码码?
#笔试题目##腾讯#
全部评论
第三题的通项公式。。
点赞
送花
回复
分享
发布于 2018-09-16 16:47
var nn = parseInt(readline()); for(let i=0;i<nn;i++){     var n = parseInt(readline());     if(f(n))         print('Yes');     else         print('No'); } function f(n) {     var tag = n;     var he = 0;     var p = 10;     do{         var s = parseInt(tag/p);         var y = tag%p;         he += y;         tag = s;     }while(s);     //console.log(he);     if(n%he==0)         return true;     else         return false; } var nn = parseInt(readline()); var q = readline().split(' '); var n=1; var x; var y; for(let i=0;i<nn;i++){     x = q.indexOf('1',i);     y = q.indexOf('1',x+1);     if(y==-1)         break;     n *= y-x;     i=x; } print(n); var s = readline(); var a = readline(); var n = 0; var t = 0; var slen = s.length; var alen = a.length; var x = 0; for(let i=0;i<slen+1;i++){     let ss = s.slice(i,i+alen);     if(ss==a){         t++;         x = alen-1;     }else{         if(x>0) {             x--;             t++;         }else{             n += t*t;             t = 0;         }     } } print(n); 全通过,自己瞎写的 没算法
点赞
送花
回复
分享
发布于 2018-09-16 16:46
网易互娱
校招火热招聘中
官网直投
第一题20 第二题10  可能我只会if else for 吧
点赞
送花
回复
分享
发布于 2018-09-16 16:40
90,100,50……
点赞
送花
回复
分享
发布于 2018-09-16 16:45
第一题哈希,第二题贪心,第三题没推出来,目测分情况推公式
点赞
送花
回复
分享
发布于 2018-09-16 18:18
第二题AC代码,阿Q赢的最少轮数问题:将阿Q最少轮数转换为牛牛赢的最多轮数即可。 import math values = list(map(int,input().split())) X = values[0] Y = values[1] N = math.sqrt(2*(X+Y)+1/4)-1/2 n = int(math.sqrt(2*Y+1/4)-1/2) ret = -1 if int(N) == N: ret = int(N-n) print(ret)
点赞
送花
回复
分享
发布于 2018-09-16 18:57
同求 让学习学习
点赞
送花
回复
分享
发布于 2018-09-16 16:39
第一题:30,第二题:90,第三题:30,一道都搞不定
点赞
送花
回复
分享
发布于 2018-09-16 16:42
前两个20 30 最后一个没时间看了
点赞
送花
回复
分享
发布于 2018-09-16 16:42
90 AC 30
点赞
送花
回复
分享
发布于 2018-09-16 16:43
第一题ac代码 k = int(input().strip())A = input().strip()B = input().strip() la = len(A)lb = len(B)def getnext(ps): nextarr = [-1 for i in range(len(ps))] nextarr[0] = -1 j=0 k=-1 while j<len(ps)-1: if k==-1 or (k>=0 and ps[j]==ps[k]): j+=1 k+=1 if ps[j] == ps[k]: nextarr[j] = nextarr[k] else: nextarr[j] = k else: k = nextarr[k] return nextarr def kmp(ts,ps):# i,j = 0,0 # i : zhuchuan nextarr = getnext(ps) count = 0 while i<len(ts): if (j==-1 or ts[i]==ps[j]): i+=1 j+=1 else: j = nextarr[j] if j == len(ps): i = i-j+1 j=0 count+=1 return count zichuan = {}i = 0res = 0while i < la-k+1: cur = A[i:i+k] if cur not in zichuan: zichuan[cur] = 1 count = kmp(B,cur) res+=count i+=1print(res)
点赞
送花
回复
分享
发布于 2018-09-16 16:44
第3题有大佬AC么?是不是可以用容斥来做啊? a,b,c=list(map(int,input().strip().split(' '))) res=0 mod=10**9+7 for i in range(1,a+1):     mi,ma=max(1,i-c+1), min(i,b)     res+=(mi+ma)*(ma-mi+1)//2     res%=mod for i in range(1,b+1):     mi,ma=max(1,i-c+1), min(i,a)     res+=(mi+ma)*(ma-mi+1)//2     res%=mod for i in range(1,c+1):     mi,ma=max(1,i-a+1), min(i,b)     res+=(mi+ma)*(ma-mi+1)//2     res%=mod for i in range(1,1+min(a,b)):     res-=min(2*i-1,c)     res%=mod for i in range(1,1+min(a,c)):     res-=min(2*i-1,b)     res%=mod for i in range(1,1+min(b,c)):     res-=min(2*i-1,a)     res%=mod      res+=min([a,b,c]) res%=mod print(res)
点赞
送花
回复
分享
发布于 2018-09-16 16:47
0.9 AC 0.5 第三题死活内存超限,用long也超限。。。
点赞
送花
回复
分享
发布于 2018-09-16 16:48
三角形那个有没有大佬给出AC代码呀,我用的三维数组,内存超出限制,很难受
点赞
送花
回复
分享
发布于 2018-09-16 16:50
我Android,1、2题AC,第三题等调试通的时候时间结束了QAQ
点赞
送花
回复
分享
发布于 2018-09-16 16:51
90 90 30的是不是凉了?
点赞
送花
回复
分享
发布于 2018-09-16 16:56
90 AC 60 第三题加了个上界,从30变到60
点赞
送花
回复
分享
发布于 2018-09-16 17:08
https://www.nowcoder.com/discuss/110827 我写的也不咋地, 共勉
点赞
送花
回复
分享
发布于 2018-09-16 17:10
90,100,20
点赞
送花
回复
分享
发布于 2018-09-16 17:47
https://blog.csdn.net/u013594470/article/details/82726151
点赞
送花
回复
分享
发布于 2018-09-16 17:58

相关推荐

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