拼多多算法笔试交流(AC 2.6)

拼多多第三第四题好折磨人啊,都是10^12的大小,感觉需要推导出来公式才能AC,难,我只能用简单办法试试了。求一个第三第四题思路,我把我的先贴出来(第四题实在写得乱,只能A最基础的20%,就不拿出来了)

第一题 AC 100%
import sys
"""
给定N个数字,与操作次数M
M次取两个数,求最后这M个乘积的最小值
不可重复使用
测试用例:
4 2
1 2 3 4

10
"""
if __name__ == "__main__":
    # 读取第一行的n
    n, m = [int(e) for e in sys.stdin.readline().strip().split()]
    A = list(map(int, sys.stdin.readline().strip().split()))
    A.sort()
    A = A[:m*2]
    res = 0
    for i in range(m):
        res += A[i]*A[2*m-i-1]
    print(res)
第二题 AC 100%
import sys
"""
种树,给一个区间,与M个人种树的区间
每次有人种树,得到此时的树的数量
测试用例:
4 3
1 2
2 3
3 4

2
3
4
"""
if __name__ == "__main__":
    # 读取第一行的n
    n, m = [int(e) for e in sys.stdin.readline().strip().split()]
    lst = []
    for i in range(m):
        lst.append(list(map(int, sys.stdin.readline().strip().split())))

    tree = [0] * n
    count = 0
    for e in lst:
        i = e[0]-1
        while i < e[1]:
            if tree[i] != 0:
                i = tree[i]
            else:
                tree[i] = e[1]
                i+=1
                count += 1
        print(count)

第三题 AC 40%
import sys
"""
给定m,n . 最多由m个a,n个b组成一个字符串,求所有字符串中排序为K的那个字符串

超时,通过40%
"""
if __name__ == "__main__":
    # 读取第一行的n
    n, m, k = [int(e) for e in sys.stdin.readline().strip().split()]
    # print(n,m,k)
    global count
    global res
    count = 0
    if k <= n:
        print("a"*k)
        exit(0)
    # elif k<n+m:
    #     print("a"*(k-n)+"b"*(k-n))

    def rev(a_num, b_num, s, K):
        global count
        global res
        if count == K:
            res = s
            print(res)
            exit(0)
        elif count < K:
            count += 1
            if a_num>0:
                rev(a_num-1, b_num, s+"a", K)
            if b_num>0:
                rev(a_num, b_num-1, s+"b", K)

    rev(n, m, "", k)


#笔试题目##题解##拼多多#
全部评论
没参加笔试,但还是想分享一下第三题思路(逃 https://www.nowcoder.com/discuss/286676?toCommentId=4340274
点赞 回复 分享
发布于 2019-09-27 14:51

相关推荐

不愿透露姓名的神秘牛友
07-24 13:39
在记录秋招的大魔王很...:别被忽悠了,我做了多年销售。我可以告诉你,这就是忽悠你的,销售一定要看底薪也要看提成两者不可缺一。提成是有业绩的时候才拿的到的,谁能保证一直有单状态都好。销售有时候很讲究运气的。底薪是你这个人这个岗位日常工作体现的价值。别小看底薪,你看那些跳槽去做经理主管的,底薪底一些,人家愿意去吗?所以那些说销售靠提成的纯属忽悠,除非他们的业务很容易成单。
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
评论
2
21
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务