📅  最后修改于: 2023-12-03 15:08:11.186000             🧑  作者: Mango
给定一个整数数组,对于数组中的每个元素,计算它是否大于其左侧所有元素,并返回满足条件的元素数量。
我们可以用一个变量 maxVal
来跟踪当前遍历过的最大值, 如果当前元素大于 maxVal
,则它就是符合条件的元素。
代码如下:
def count_elements(nums):
count = 0
max_val = float('-inf')
for num in nums:
if num > max_val:
count += 1
max_val = num
return count
此解法只需要遍历一遍数组,时间复杂度为 O(n)。空间复杂度为 O(1),因为只需要常数级别的额外空间。
在 Python 中,使用 float('-inf')
来初始化 max_val
是一种比较高效的方式。
>>> count_elements([1, 2, 3, 4, 5])
5
>>> count_elements([5, 4, 3, 2, 1])
1
>>> count_elements([2, 4, 6, 8, 10])
5
>>> count_elements([10, 8, 6, 4, 2])
1