360笔试编程第二题,求大佬指点。
360笔试第二题,重排组合成最大的m进制数。
笔试完之后来了思路写了代码,求大佬们指点一下有没有问题,感谢。
import sys import collections params = list(map(int, raw_input().split(' '))) n = params[0] m = params[1] num1 = list(map(int, raw_input().split(' '))) num2 = list(map(int, raw_input().split(' '))) num1 = collections.Counter(num1) num2 = collections.Counter(num2) print num1, num2 ans = [] for i in range(n-1,-1,-1): for key in num1: if i-key in num2: temp = min(num2[i-key], num1[key]) ans.extend([i]*temp) num1[key] -= temp num2[i-key] -= temp if i+n-key in num2: temp = min(num2[i+n-key], num1[key]) ans.extend([i]*temp) num1[key] -= temp num2[i+n-key] -= temp if len(ans) == m: break print num1,num2 for i in range(len(ans)): ans[i] = str(ans[i]) sys.stdout.write(' '.join(ans))
#360公司##笔试题目#