找到相对于列表索引的“当前”最大值列表

1 投票
1 回答
39 浏览
提问于 2025-04-12 18:37

给定一个列表 a,我想知道所有的索引 i,使得 a[i]>a[j] 对于所有 j<i 都成立。

我可以想到一个简单的循环来实现这个,但我在想有没有什么内置的方法可以做到这一点:

max_values = [a[0]]
indices = [0]
for i, x in enumerate(a):
    if x>max_values[-1]:
        indices.append(i)
        max_values.append(x)

有没有更好的方法呢?

1 个回答

3

这个看起来不是一个需要内置的函数,我之前也没见过。

你的问题没有说明你需要值,只提到了索引,所以在这种情况下你可以简化成

max_value = a[0]
indices = [0]
for i, x in enumerate(a):
    if x>max_value:
        indices.append(i)
        max_value = x

除此之外,你的代码很好,没有需要改进的地方。

撰写回答