美团才1小时啊
刚刚笔试完美团,做前面题目的时候有道题卡了,就是最基础的那个出栈入栈交替的,怎么看了下都准确的呀。
做编程题的时候才发现就剩20分钟了,你妹的,第一题都没来得及AC,才发现第二题这么简单,不会把第二题放前面的啊。
看到有人问第二题。
先说下思路:
假如奇数个数数组,[1,2,3,4,5],-->[1,3,5,2,4],
假如偶数个数数组,[1,2,3,4,5,6] -->[1,3,5,2,4,6],
转化为求长度为2的连续子数组和的最大值。
python3代码
def fuzhu(A,count): ''' 求A数组中连续count个子数组和最大值 ''' n=len(A) s=sum(A[:count]) M=s for i in range(count,n): s+=A[i]-A[i-count] if A[i]>A[i-count]: M=max(s,M) return M def ti2(A): n=len(A) B=[0]*n if n%2==0: d=n//2 for i in range(0,d): B[i]=A[2*i] B[i+d]=A[2*i+1] else: d=n//2 for i in range(0,d): B[i]=A[2*i] B[i+d+1]=A[2*i+1] B[d]=A[-1] return fuzhu(B,d)