julia - 如何在julialang中找到最后一个最大值的索引?

标签 julia

我有一个包含重复的非负整数的数组,例如,A=[5,5,5,0,1,1,0,0,0,3,3,0,0] .我想在 A 中找到最后一个最大值的位置.那是最大的索引i使得 A[i]>=A[j]所有 j .在我的例子中,i=3 .

我试图找到所有最大值的索引 A然后找到这些指数的最大值:

A = [5,5,5,0,1,1,0,0,0,3,3,0,0];
Amax = maximum(A);
i = maximum(find(x -> x == Amax, A));

有没有更好的办法?

最佳答案

length(A) - indmax(@view A[end:-1:1]) + 1

应该很快,但我没有对其进行基准测试。

编辑:我应该注意到,根据定义,@crstnbr 的解决方案(从头开始编写算法)更快(小戴的回应中显示了多快)。这是尝试使用 julia 的内置数组函数来做到这一点。

关于julia - 如何在julialang中找到最后一个最大值的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47113367/

相关文章:

Julia:从索引数组和可供选择的数组构造一个数组(或者:Julia 中相当于 numpy 中的 np.choose 的是什么?)

julia - 如何将函数标记为 `@deprecate` d?

julia - 如何在 Julia 中实现迭代器?

jupyter-notebook - Julia Pro : import Jupiter notebook

julia - 尝试更改变量的值时,Pluto.jl 会引发多重分配错误

python - 如何在 Julia 语言中使用 SVM?

function - Julia 创建一个函数的多个稍作修改的版本

julia - 具有多变量函数输入的一维积分

julia - 如何测量 Julia 中的 RAM 消耗和计算时间?

arrays - 两种不同类型的数组数组