zoukankan      html  css  js  c++  java
  • 2018美团机器学习方向在线笔试编程题

    第一题:无向图

     代码如下:

    def min_path(n, B):
        node_list = [0]*(n+1) # 保存节点的距离
        for path in B:
            # 遍历路径,使后一节点距离值等于前一节点距离值加一
            x, y = path
            node_list[y]=node_list[x]+1
        depth=0
        # 找到最大深度
        for i in range(1, n+1):
            depth=max(depth, node_list[i])
        # 计算最短路径,即最深的路径走一遍,其他路径走2遍
        return 2*n-2-depth
    
    
    
    if __name__ == '__main__':
        n=int(input().strip())
        B=[]
        # 得到路径列表
        for i in range(n-1):
            A=[int(i) for i in input().strip().split(" ")]
            if A[0]>A[1]:
                A[0], A[1] = A[1], A[0] # 使得第一个元素小于第二个元素
            B.append(A)
        B.sort(key=lambda x:x[0])# 按第一个元素排序
        result=min_path(n,B)
        print(result)

    运行结果:

    4
    1 2
    1 3
    3 4
    4

    第二题:字符串:

    # 思路:确定填充每相邻K个0得到的总长度

    代码如下:

    N,k = [int(i) for i in input().strip().split(" ")]
    list=[int(i) for i in input().strip().split(" ")]
    zero_ind=[]
    for i in range(N):
        if list[i]==0:
            zero_ind.append(i+1)
    zero_ind.append(N+1)
    max_len=zero_ind[k-1]
    for i in range(k+1, len(zero_ind)):
        max_len=max(max_len, zero_ind[i]-zero_ind[i-k-1]-1)
    print(max_len)

     运行:

    10 2
    1 0 0 1 0 1 0 1 0 1
    5
    
    Process finished with exit code 0
  • 相关阅读:
    IDEA连接 Oracle数据库
    什么是混合云备份
    什么是阿里云ACA认证
    什么是阿里云ACE认证
    什么是轻量应用服务器
    什么是时序时空数据库TSDB
    什么是数据管理DMS
    什么是分析型数据库PostgreSQL版
    阿里云多端小程序
    阿里云云计算ACP专业认证考试
  • 原文地址:https://www.cnblogs.com/tsdblogs/p/9605638.html
Copyright © 2011-2022 走看看