假设我们有一个称为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