新凯来 笔试

两题

1. 机器独立加工问题。N台机器加工M零件,零件相同,但每台机器加工时间时间不同,求总的最短时间 。300

2. 编码是否正确的问题。编码规则是数字加字符(包含数字字符)如:"9computer012"编码正确9+“computer0”+1+“2”
但是01a不对,0不能作为编码。200分。要求只能有一种解析方式,如果有歧义就返回false。

1. 解答:
def schedule_simple(speeds, n):
    """ speeds: 各机器加工一个零件的时间, n: 零件数 """
    
    # 初始化:记录每台机器已经用了多少时间
    # 一开始所有机器都是0,都没开始干活
    times = [0] * len(speeds)  # 假设3台机器 → times = [0, 0, 0]
    
    # 循环n次,给每个零件分配机器
    for _ in range(n):  # n=10个零件,就循环10次
        
        # times.index(min(times)) 是什么意思?
        # min(times): 找出当前times列表中的最小值(哪台机器累计时间最短)
        # .index(): 找到这个最小值的位置(第几台机器)
        i = times.index(min(times))  # 找到当前最空闲的机器编号
        
        # 给这台最空闲的机器分配一个零件
        # 它的总时间增加一个零件的加工时间
        times[i] += speeds[i]  # speeds[i]是这台机器加工一个零件需要的时间
    
    # 所有零件分配完,返回最慢的机器所用的时间
    # 这就是整个任务完成需要的时间
    return max(times)

# 总是去队伍最短的地方排队
print(schedule_simple([5,3,4], 10))
全部评论

相关推荐

不愿透露姓名的神秘牛友
03-09 09:05
新凯来 光学技术工程师 17.5×15 本科211
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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