程序寻找最短时间完成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
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短