查找通过Python的所有停靠点所需的最少公交车数量的程序
假设我们有一个称为nums的数字列表,它在一行上显示了公共汽车站,其中nums[i]显示了公共汽车必须到达站点i的时间。现在公交车只能前进,我们必须找到通过所有站点所需的最少公交车数量。
因此,如果输入类似于nums=[1、2、7、9、3、4],那么输出将为2,因为一条公交车可以停靠[1、2、3、4],而另一辆公交车可以进行[7、9]。
为了解决这个问题,我们将按照以下步骤操作:
回答:=0
见:=一个列表,其长度与nums相同,最初填充为false
对于每个索引i和以数字为单位的对应n
看过[i]:=正确
回答:=回答+1
上一页:=n
对于范围为i+1到nums大小的j,执行
见过[j]:=真
上一个:=nums[j]
如果nums[j]>prev并且seeed[j]为假,则
如果看到[i]为假,则
返回ans
让我们看下面的实现以更好地理解-
示例
class Solution:
def solve(self, nums):
ans = 0
seen = [False] * len(nums)
for i, n in enumerate(nums):
if not seen[i]:
seen[i] = True
ans += 1
prev = n
for j in range(i+1, len(nums)):
if nums[j] > prev and not seen[j]: seen[j] = True
prev = nums[j]
return ans
ob = Solution()nums = [1, 2, 7, 9, 3, 4]
print(ob.solve(nums))输入项
[1, 2, 7, 9, 3, 4]
输出结果
2