当前位置: 首页 > 编程笔记 >

程序寻找最短时间完成python中的所有任务

米丰
2023-03-14
本文向大家介绍程序寻找最短时间完成python中的所有任务,包括了程序寻找最短时间完成python中的所有任务的使用技巧和注意事项,需要的朋友参考一下

假设我们有一个称为nums的数字列表,其中每个值都确定完成任务所需的时间单位。我们可以跳过任何非连续任务,我们必须找到完成所有任务所需的最短时间。

因此,如果输入类似于nums = [11、6、8、16],则输出将为14,因为我们可以跳过第一个和最后一个任务。

为了解决这个问题,我们将按照以下步骤操作:

  • n:= nums的大小

  • table:=做一个nx2矩阵,用0填充

  • table[0,0]:= 0

  • table [0,1]:= nums [0]

  • 对于范围在1到n-1之间的i

    • table [i,0]:= table [i-1,1]

    • table [i,1] =(table [i-1,0]和table [i-1] [1]的最小值)+ nums [i]

  • 返回表格行的最小值[n-1]

让我们看下面的实现以更好地理解:

示例

class Solution:
   def solve(self, nums):
      n = len(nums)
      table = [[0] * 2 for _ in range(n)]

      table[0][0] = 0
      table[0][1] = nums[0]

      for i in range(1, n):
         table[i][0] = table[i - 1][1]
         table[i][1] = min(table[i - 1][0], table[i - 1][1]) + nums[i]

      return min(table[n - 1])

ob = Solution()nums = [11, 6, 8, 16]
print(ob.solve(nums))

输入值

[11, 6, 8, 16]

输出结果

14
 类似资料:
  • 我使用最短剩余时间优先算法(SRTF)来计算流程的平均等待时间和周转时间。 我想以如下所示的表格格式打印结果。 这里AT=到达时间,TT=周转时间,WT=等待时间。但是由于过程3和4的完成时间不可能,出现了一些错误。这是我的代码: 我犯了什么错误?请纠正我。

  • 问题内容: 找出特定请求花费了多长时间的好方法是什么? 我想获取此信息,然后将其显示在页面上的某处。 回答??:::: 我是javascript新手,如果您不想内联“ success”函数(因为它将是一个更大的函数),这是我能想到的最好的方法(这是执行此操作的好方法)吗?我觉得我已经把事情复杂化了…: 问题答案: @codemeit是正确的。他的解决方案如下所示,将jQuery用于ajax请求。这

  • 问题内容: 我将一堆可运行的对象放入ExecutorService中: 我希望我的程序/过程在所有工作人员完成后立即停止。但是根据我的日志,这种情况还需要20到30秒。工人没有分配任何资源,实际上,他们目前什么都不做。 不要误会我的意思,这对我来说不是一个关键问题,我只是想了解正在发生的事情,而且我想知道这是否是正常行为。 问题答案: 使用它的。的javadocs说“每个新线程都被创建 为非守护

  • 我在使用Haskell编写的程序中遇到了一些困难。其背后的思想是递归地在一个列表中找到最短的列表并返回该列表。我已经设法把程序写得很好,但我似乎不知道我在其中做错了什么。这些是我尝试编译时得到的错误: 无法将类型“a”与“[[a]]”匹配,“a”是一个严格的类型变量,由类型签名绑定的类型为:seltest::forall a。短时间内。HS:1:13。预期类型:[[[a]]],实际类型:[a] 在

  • 我需要找到一个算法来找到有向图中的所有根,在O(n m)。 我有一个寻找单个根的算法: 在v中的某些v上运行DFS(v)。如果结果是一个生成树,则v是根。否则,结果就是树木成林。然后: 在最后一棵树的根上运行DFS(u)。如果结果是一棵生成树,那么u是根。否则,图中没有根 现在,如果我想找到所有的根,最好的方法是每次在最后一棵树的不同顶点上运行上述算法O(n)次吗?假设我找到了一个根,如果另一个根

  • 给定不同整数的问题,生成所有子集。https://www.interviewbit.com/problems/subset/ 我找到了两种解决方案。 第一个解决方案:: 第二种解决方案: t(n)=2t(n-1)c(即2个大小为n-1的递归调用,每个n都有一些恒定的时间)t(n)=O(2^n)通过解决上述递归关系。 但对于第二个解,我无法定义递归关系以最终使用反向替换来获得时间复杂度,并且无法通过