美文网首页
描述分工合理的步骤

描述分工合理的步骤

作者: Python_Camp | 来源:发表于2022-10-13 10:36 被阅读0次

描述分工合理的步骤

我们有一大堆工作要做,所有的工作都被分配了若干工作,工作量将是一个整数,可能是正数、负数或零。

吉姆和鲍勃的工作是做所有的工作,但是我们需要找到容器中可以进行分配的位置,这样吉姆和鲍勃就可以有最平均的工作量来执行。

你的任务是写一个函数,确定为Jim和Bob分担工作量的地方,它将被提供一个难度评级的容器,你必须返回一个元组/数组,其中包含(分担的最佳位置,两个总工作量的差值)。如果没有提供工作负载,则返回(None,None)

实例
我们要分割的工作负载如下。

split_workload([1, 6, 2, 3, 5, 4, 1])

如果我们在每个位置尝试切割,那么。

  分配吉姆的工作 鲍勃的工作    比率 差异
0 [], [1, 6, 2, 3, 5, 4, 1] 0:22 22
1 [1] [6, 2, 3, 5, 4, 1] 1:21 20
2 [1, 6] [2, 3, 5, 4, 1] 7:15 8
3 [1, 6, 2] [3, 5, 4, 1] 9:13 4
4 [1, 6, 2, 3] [5, 4, 1] 12:10 2
5 [1, 6, 2, 3, 5] [4, 1] 17:5 12
6 [1, 6, 2, 3, 5, 4] [1] 21:1 20
7 [1, 6, 2, 3, 5, 4, 1] [] 22:0 22

正如你所看到的,当我们在第4位分割时,我们得到了最均匀的分割,只有2的差异。

因此,对于我们的例子,结果将是。

split_workload([1, 6, 2, 3, 5, 4, 1]) -> (4, 2)

如果你的答案在O(n)时间和内存限制下运行,你会得到自我奖励的分数。

列表算法

1st. solution

def split_workload(workload):
    if not workload: return None, None
    
    diff = sum(workload)    
    best_i, best_diff = None, float('inf')
    
    for i, work in enumerate(workload):
        if abs(diff) < best_diff:
            best_i, best_diff = i, abs(diff)
        
        # 每右移1步,左右两边的工作量之差
        # 减少 2*workload[i]
        diff -= 2*work
    
    return best_i, best_diff

2nd. solution

def split_workload(workload):
    if not workload: return (None, None)
    diff = [0,float('inf')]
    for i in range(len(workload)):
        d = sum(workload[:i]) - sum(workload[i:])
        if abs(d) < diff[1]:
            diff[0],diff[1] = i,abs(d)

    return tuple(diff)

本文由mdnice多平台发布

相关文章

  • 描述分工合理的步骤

    描述分工合理的步骤 我们有一大堆工作要做,所有的工作都被分配了若干工作,工作量将是一个整数,可能是正数、负数或零。...

  • 合理分工

    我们每天都在工作,怎样让我们的工作效率提高呢?在有限的时间更好的完成工作? 这次的K分检查对我们冲...

  • 工作分工

    分工合理能提高效率,分工不合理效率提不高,还会有其他问题。

  • 如何打造无敌团队

    毫无疑问,团队需要合理的分工和搭配形成一个整体。 合理分工当然包括业务职能上的合理分工,即一个人能做的事情终究有限...

  • 学会掰任务

    把任务掰开了,再合并。 学会分配任务! 学会拆分任务! 合理分工! 就像党建。 前后端分工!管理后台分工!接口分工...

  • 如何合格的汇报工作?

    五个步骤 【1】背景描述——要把自己上一阶段工作的背景,领导如何安排的?自己如何执行的?大家如何分工的,如何配合的...

  • 效率

    合理的步骤

  • 5W2H

    检查原产品的合理性 步骤(1)做什么(What)? 条件是什么?哪一部分工作要做?目的是什么?重点是什么?与什么有...

  • 分工与合作

    日常工作中往往会因为不合理的分工使整个团队不能够产生有效的工作效率,所以在日常工作中不但要有分工还要有合理的分工这...

  • 合理分工的重要性

    不管是工作中还是生活中合理的安排时间安排分工真的很中要,如若没有合理的安排工作不光事情没有完成,即使做了也做不...

网友评论

      本文标题:描述分工合理的步骤

      本文链接:https://www.haomeiwen.com/subject/hfhfzrtx.html